GoGPT Best VPN GoSearch

فاویکون OnWorks

pt-query-digestp - آنلاین در ابر

اجرای pt-query-digestp در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستور pt-query-digestp است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


pt-query-digest - پرس‌و‌جوهای MySQL را از لاگ‌ها، لیست فرآیندها و tcpdump تجزیه و تحلیل کنید.

خلاصه


استفاده: pt-query-digest [OPTIONS] [FILES] [DSN]

pt-query-digest کوئری‌های MySQL را از فایل‌های لاگ کند، عمومی و باینری تجزیه و تحلیل می‌کند. می تواند
همچنین پرس و جوهایی از "SHOW PROCESSLIST" و داده های پروتکل MySQL از tcpdump را تجزیه و تحلیل کنید. توسط
به طور پیش فرض، پرس و جوها بر اساس اثر انگشت گروه بندی می شوند و به ترتیب نزولی زمان درخواست گزارش می شوند
(یعنی آهسته ترین پرس و جو ابتدا). اگر "FILES" داده نشود، ابزار "STDIN" را می خواند. در
«DSN» اختیاری برای گزینه‌های خاصی مانند «--از» و «--تا» استفاده می‌شود.

کندترین درخواست‌ها را از "slow.log" گزارش کنید:

pt-query-digest slow.log

کندترین پرس و جوها را از لیست پردازش هاست 1 گزارش کنید:

pt-query-digest --processlist h=host1

داده های پروتکل MySQL را با tcppdump ضبط کنید، سپس کندترین پرس و جوها را گزارش دهید:

tcpdump -s 65535 -x -nn -q -tttt -i هر -c 1000 پورت 3306 > mysql.tcp.txt

pt-query-digest --type tcpdump mysql.tcp.txt

داده های پرس و جو را از "slow.log" در host2 برای بررسی بعدی و تجزیه و تحلیل روند ذخیره کنید:

pt-query-digest --بررسی h=host2 --no-report slow.log

خطرات


Percona Toolkit بالغ است، در دنیای واقعی اثبات شده است، و به خوبی آزمایش شده است، اما همه پایگاه داده است
ابزارها می توانند برای سیستم و سرور پایگاه داده خطر ایجاد کنند. قبل از استفاده از این ابزار،
لطفا:

· اسناد ابزار را بخوانید

· بررسی "BUGS" شناخته شده ابزار

· ابزار را روی یک سرور غیر تولیدی تست کنید

· از سرور تولید خود نسخه پشتیبان تهیه کنید و پشتیبان گیری را تأیید کنید

شرح


pt-query-digest یک ابزار پیچیده اما آسان برای تجزیه و تحلیل پرس و جوهای MySQL است. آی تی
می تواند پرس و جوهای MySQL را تجزیه و تحلیل کند، لاگ های کند، کلی و باینری. (لاگ های باینری ابتدا باید باشند
تبدیل به متن، نگاه کنید به "--type"). همچنین می تواند از "SHOW PROCESSLIST" و پروتکل MySQL استفاده کند
داده ها از tcpdump به‌طور پیش‌فرض، ابزار گزارش می‌دهد که کدام پرسش‌ها کندترین هستند، و
بنابراین مهمترین چیز برای بهینه سازی است. گزارش های پیچیده تر و سفارشی تر می تواند باشد
با استفاده از گزینه هایی مانند "--group-by"، "--filter" و "--embedded-attributes" ایجاد شده است.

تجزیه و تحلیل پرس و جو بهترین روشی است که باید به طور مکرر انجام شود. برای سهولت در این کار،
pt-query-digest دو ویژگی دارد: بررسی پرس و جو ("--بازبینی") و تاریخچه پرس و جو
("--تاریخ"). هنگامی که از گزینه "--review" استفاده می شود، تمام پرس و جوهای منحصر به فرد در a ذخیره می شوند
پایگاه داده هنگامی که ابزار دوباره با "--review" اجرا می شود، پرس و جوها به عنوان بررسی شده در علامت گذاری می شوند
پایگاه داده در گزارش چاپ نشده است. این پرس و جوهای جدیدی را که باید باشند برجسته می کند
بررسی شده. هنگامی که از گزینه "--history" استفاده می شود، معیارهای پرس و جو (زمان پرس و جو، زمان قفل،
و غیره) برای هر پرس و جو منحصر به فرد در پایگاه داده ذخیره می شود. هر بار که ابزار با
"--history"، داده های تاریخی بیشتری ذخیره می شود که می تواند برای روند و تجزیه و تحلیل استفاده شود
عملکرد پرس و جو در طول زمان

ویژگی های


pt-query-digest روی رویدادها کار می‌کند که مجموعه‌ای از جفت‌های کلید-مقدار به نام هستند
ویژگی های. بیشتر ویژگی ها را فوراً تشخیص خواهید داد: "Query_time"،
"Lock_time" و غیره. شما فقط می توانید به یک لاگ کند نگاه کنید و آنها را ببینید. با این حال، وجود دارد
برخی که در لاگ کند وجود ندارند و لاگ های کند ممکن است در واقع انواع مختلفی داشته باشند
از ویژگی ها (به عنوان مثال، ممکن است سروری با وصله های Percona داشته باشید).

برای فهرستی از وجوه رایج، به «مرجع ویژگی‌ها» در انتهای این مستندات مراجعه کنید
ویژگی های خاص "--type". آشنایی با این صفات ضروری است
کار با "--filter"، "--ignore-attributes"، و دیگر گزینه های مرتبط با ویژگی.

با استفاده خلاقانه از «--filter»، می‌توانید ویژگی‌های جدیدی که از موجود مشتق شده‌اند ایجاد کنید
ویژگی های. به عنوان مثال، برای ایجاد یک ویژگی به نام "Row_ratio" برای بررسی
نسبت "Rows_sent" به "Rows_examined" فیلتری مانند:

--filter '($event->{Row_ratio} = $event->{Rows_sent} / ($event->{Rows_examined})) && 1'

ترفند "&& 1" برای ایجاد یک نحو یک خطی معتبر که همیشه درست است، حتی اگر
انتساب اتفاق می افتد برای ارزیابی نادرست. ویژگی جدید به طور خودکار در ظاهر می شود
خروجی:

# نسبت ردیف 1.00 0.00 1 0.50 1 0.71 0.50

ویژگی های ایجاد شده به این روش را می توان برای "--order-by" یا هر گزینه ای که نیاز دارد مشخص کرد
یک ویژگی

OUTPUT


پیش فرض "--output" یک گزارش تجزیه و تحلیل پرس و جو است. گزینه "--[no]report" کنترل می کند
آیا این گزارش چاپ شده است یا نه. گاهی اوقات ممکن است بخواهید همه پرس و جوها را تجزیه و تحلیل کنید
اما گزارش را سرکوب کنید، برای مثال هنگام استفاده از "--review" یا "--history".

برای هر کلاس پرس و جوی تحلیل شده یک پاراگراف وجود دارد. یک "کلاس" از نمایش داده شد همه
همان مقدار برای ویژگی "--group-by" که به طور پیش فرض "اثر انگشت" است. (دیدن
"ویژگی ها".) اثرانگشت نسخه انتزاعی شده متن پرس و جو با حروف تحت اللفظی است
حذف شد، فضای خالی جمع شد، و غیره. گزارش فرمت شده است، بنابراین آسان است
بدون بسته بندی در ایمیل ها بچسبانید، و همه خطوط غیر پرس و جو با یک نظر شروع می شوند، بنابراین شما
می توانید آن را در یک فایل .sql ذخیره کنید و آن را در ویرایشگر متن مورد علاقه خود باز کنید.
در ابتدا یک نمایه زمان پاسخ وجود دارد.

خروجی شرح داده شده در اینجا توسط "--report-format" کنترل می شود. آن گزینه به شما اجازه می دهد
مشخص کنید چه چیزی و به چه ترتیبی چاپ شود. خروجی پیش فرض در ترتیب پیش فرض است
اینجا توضیح داده شد

گزارش، به طور پیش فرض، با یک پاراگراف در مورد کل تجزیه و تحلیل اجرا شده آغاز می شود
اطلاعات بسیار شبیه به چیزی است که برای هر دسته از پرس و جوها در گزارش مشاهده خواهید کرد، اما
اطلاعاتی ندارد که نگهداری آن در سطح جهانی برای آن بسیار گران باشد
تحلیل و بررسی. همچنین برخی از آمارهای مربوط به اجرای خود کد مانند CPU را دارد
و استفاده از حافظه، تاریخ و زمان محلی اجرا، و لیستی از فایل ورودی
خواندن / تجزیه.

پس از این، نمایه زمان پاسخگویی در مورد رویدادها است. این بسیار خلاصه شده است
مشاهده رویدادهای منحصر به فرد در گزارش پرس و جو مفصل که در ادامه می آید. این شامل
ستون های زیر:

معنی ستون
================================================== =====================
رتبه رتبه پرس و جو در کل مجموعه پرس و جوهای تحلیل شده
Query ID اثر انگشت پرس و جو
زمان پاسخگویی کل زمان پاسخ و درصد کل کل
تماس ها تعداد دفعاتی که این پرس و جو اجرا شده است
R/Call میانگین زمان پاسخ در هر اجرا
V/M نسبت واریانس به میانگین زمان پاسخ
مورد پرس و جو مقطر

خط پایانی که رتبه آن به عنوان MISC نشان داده می شود، حاوی آمار کلی در مورد پرس و جوهایی است که
به دلیل گزینه هایی مانند "--limit" و "--outliers" در گزارش گنجانده نشدند. برای
جزئیات مربوط به نسبت واریانس به میانگین، لطفاً ببینید
http://en.wikipedia.org/wiki/Index_of_dispersion.

بعد، گزارش پرس و جو مفصل چاپ می شود. هر پرس و جو در یک پاراگراف ظاهر می شود. اینجا یک است
نمونه، کمی فرمت‌بندی شده است تا «perldoc» خطوط را در ترمینال قرار ندهد. در
زیر همه یک پاراگراف خواهد بود، اما ما آن را برای تفسیر تجزیه می کنیم.

# Query 2: 0.01 QPS، 0.02x conc، ID 0xFDEA8D2993C9CAF3 در بایت 160665

این خط شماره ترتیبی پرس و جو را به ترتیب مرتب سازی مشخص شده توسط مشخص می کند
"--سفارش توسط". سپس پرس و جوها در هر ثانیه، و همزمانی تقریبی برای وجود دارد
این پرس و جو (به عنوان تابعی از بازه زمانی و زمان کل Query_time محاسبه می شود). بعدی وجود دارد
شناسه پرس و جو اگر شما هستید، این شناسه یک نسخه هگز از چک جمع پرس و جو در پایگاه داده است
با استفاده از "--review". شما می توانید جزئیات پرس و جو بررسی شده را از پایگاه داده با یک انتخاب کنید
درخواستی مانند "SELECT .... WHERE checksum=0xFDEA8D2993C9CAF3".

اگر در حال بررسی گزارش هستید و می خواهید هر نمونه از یک گزارش خاص را چاپ کنید
پرس و جو کنید، سپس "--filter" زیر ممکن است مفید باشد:

pt-query-digest slow.log \
--بدون گزارش \
--خروجی کندی \
--filter '$event->{fingerprint} \
&& make_checksum($event->{fingerprint}) معادل "FDEA8D2993C9CAF3"

توجه داشته باشید که باید پیشوند "0x" را از چک‌سام حذف کنید.

در نهایت، اگر می خواهید نمونه ای از پرس و جو را در فایل log پیدا کنید، بایت آن وجود دارد
افست جایی که می توانید نگاه کنید. (به دلیل برخی ناهنجاری ها در این مورد همیشه دقیق نیست
فرمت لاگ کند، اما معمولاً درست است.) موقعیت به بدترین نمونه اشاره دارد، که
در زیر بیشتر در مورد آن خواهیم دید.

جدول بعدی جدول معیارهای مربوط به این دسته از پرس و جوها است.

# pct کل حداقل حداکثر میانگین 95٪ میانه stddev
# شمارش 0 2
# زمان اجرایی 13 1105s 552s 554s 553s 554s 2s 553s
# زمان قفل 0 216 us 99 us 117us 108us 117us 12us 108us
# ردیف ارسال شده 20 6.26M 3.13M 3.13M 3.13M 3.13M 12.73 3.13M
# امتحان ردیف 0 6.26M 3.13M 3.13M 3.13M 3.13M 12.73 3.13M

خط اول سرصفحه ستون برای جدول است. درصد درصد از
کل برای کل اجرای تجزیه و تحلیل، و مجموع مقدار واقعی مشخص شده است
متریک به عنوان مثال، در این مورد می توانیم ببینیم که کوئری 2 بار اجرا شده است
13% از تعداد کل پرس و جوهای موجود در فایل. ستون‌های حداقل، حداکثر و میانگین به صورت خودکار هستند.
توضیحی ستون 95% صدک 95 را نشان می دهد. 95 درصد مقادیر کمتر از یا هستند
برابر این مقدار انحراف استاندارد به شما نشان می دهد که مقادیر چقدر گروه بندی شده اند.
انحراف معیار و میانه هر دو از صدک 95 محاسبه می‌شوند
مقادیر بسیار بزرگ

آمار stddev، میانه و صدک 95 تقریبی است. آمار دقیق
نیاز به حفظ هر مقدار مشاهده شده، مرتب سازی و انجام محاسباتی بر روی آنها دارد. این استفاده می کند
حافظه زیادی برای جلوگیری از این امر، ما 1000 سطل را نگه می داریم که هر کدام از آنها 5٪ بزرگتر از سطل است
قبل، از 000001 تا یک عدد بسیار بزرگ. وقتی یک مقدار را می بینیم افزایش می دهیم
سطلی که در آن می افتد بنابراین ما به ازای هر کلاس پرس و جو حافظه را ثابت می کنیم. در
اشکال، عدم دقت است که معمولاً در محدوده 5 درصد قرار می گیرد.

در مرحله بعد، آماری از کاربران، پایگاه‌های داده و محدوده زمانی پرس و جو داریم.

# کاربران 1 کاربر1
# پایگاه های داده 2 db1(1) db2(1)
# محدوده زمانی 2008-11-26 04:55:18 تا 2008-11-27 00:15:15

کاربران و پایگاه‌های داده به‌عنوان تعداد مقادیر متمایز و به دنبال آن مقادیر نشان داده می‌شوند.
اگر فقط یکی باشد، به تنهایی نشان داده می شود. اگر تعداد زیادی وجود داشته باشد، ما هر کدام را بیشتر نشان می دهیم
موارد مکرر و به دنبال آن تعداد دفعاتی که ظاهر می شود.

# توزیع_زمان پرس و جو
# 1 ما
# 10 ما
# 100 ما
# 1 میلی ثانیه
# 10ms #####
# 100ms ###################
# 1s ##########
# 10s+

زمان های اجرا نمودار لگاریتمی خوشه بندی زمان را نشان می دهد. هر پرس و جو به یکی می رود
از "سطل ها" و شمارش می شود. سطل ها توان ده هستند. سطل اول است
همه مقادیر در "محدوده تک میکروثانیه" -- یعنی کمتر از 10 us. دوم این است
"ده ها میکروثانیه" که از 10 us تا 100 us (اما شامل نمی شود). و غیره
ویژگی نمودار را می توان با تعیین "--report-histogram" تغییر داد اما محدود به
ویژگی های مبتنی بر زمان

# جداول
# نشان دادن وضعیت جدول مانند 'table1'\G
# نشان دادن ایجاد جدول «table1»\G
# توضیح
SELECT * FROM table1\G

این بخش برای شما راحت است: اگر می‌خواهید جستارهایی را که در آن مشاهده می‌کنید بهینه کنید
لاگ کند، احتمالاً می خواهید ساختار و اندازه جدول را بررسی کنید. اینها کپی و
دستور paste-ready برای انجام این کار.

در نهایت نمونه ای از پرس و جوهای این کلاس از پرس و جو را مشاهده می کنیم. این تصادفی نیست
نمونه. این پرس و جو است که بدترین عملکرد را بر اساس ترتیب مرتب سازی داده شده توسط
"--سفارش توسط". شما معمولاً یک خط "# توضیح" را دقیقاً قبل از آن می بینید، بنابراین شما
می تواند پرس و جو را کپی-پیست کند تا طرح EXPLAIN آن را بررسی کند. اما برای پرس و جوهای غیر SELECT که
انجام این کار ممکن نیست، بنابراین ابزار سعی می کند پرس و جو را به یک معادل تقریباً تبدیل کند
پرس و جو را انتخاب کنید و آن را در زیر اضافه کنید.

اگر می خواهید این رویداد نمونه را در گزارش پیدا کنید، از افست ذکر شده در بالا استفاده کنید و
چیزی شبیه به زیر:

دم -c + /path/to/file | سر

همچنین به "--report-format" مراجعه کنید.

پرس و جو بررسی


پرس و جو "--بازبینی" فرآیند ذخیره سازی تمام اثر انگشت های پرس و جو تجزیه و تحلیل شده است. این
چندین مزیت دارد:

· می توانید متادیتا را به کلاس های پرس و جو اضافه کنید، مانند علامت گذاری آنها برای پیگیری، اضافه کردن
یادداشت‌های مربوط به پرسش‌ها یا علامت‌گذاری آنها با شناسه مشکل برای سیستم ردیابی مشکل شما.

· می توانید به مقادیر ذخیره شده در اجراهای بعدی مراجعه کنید تا بدانید که آیا این کار را انجام داده اید یا خیر
قبلا یک پرس و جو دیده شده است این می تواند به شما کمک کند کارهای تکراری را کاهش دهید.

· می توانید داده های تاریخی مانند تعداد ردیف، زمان پرس و جو و به طور کلی را ذخیره کنید
هر چیزی که در گزارش می توانید ببینید

برای استفاده از این ویژگی، pt-query-digest را با گزینه "--review" اجرا می کنید. ذخیره خواهد کرد
اثر انگشت و سایر اطلاعات در جدولی که مشخص می کنید. دفعه بعد که آن را اجرا کنید
با همین گزینه کارهای زیر را انجام می دهد:

· این به شما نمایش داده شد که قبلا بررسی کرده اید نشان نمی دهد. یک پرس و جو در نظر گرفته می شود
اگر مقداری برای ستون "reviewed_by" تعیین کرده اید، قبلا بررسی شده است. (اگر شما می خواهید
پرس و جوهایی را که قبلاً بررسی کرده اید ببینید، از گزینه "--report-all" استفاده کنید.)

پرس و جوهایی که بررسی کرده اید، و در خروجی ظاهر نمی شوند، باعث ایجاد شکاف در
دنباله شماره پرس و جو در سطر اول هر پاراگراف. و ارزشی که دارید
مشخص شده برای "--limit" همچنان مورد احترام قرار خواهد گرفت. بنابراین اگر همه پرس و جوها را در آن بررسی کرده باشید
10 تای برتر و شما 10 مورد برتر را درخواست می کنید، چیزی در خروجی نمی بینید.

· اگر می خواهید پرس و جوهایی را که قبلاً بررسی کرده اید ببینید، می توانید آن را مشخص کنید
"--گزارش همه". سپس خروجی آنالیز معمولی را خواهید دید، اما آن را نیز خواهید دید
اطلاعات جدول بررسی، درست زیر نمودار زمان اجرا. مثلا،

# اطلاعات را مرور کنید
# نظر: پرس و جوی فرعی IN() واقعاً بد است، به زودی اصلاح کنید!
# اولین_بازدید: 2008-12-01 11:48:57
# جیرا_بلیت: 1933
# آخرین_دیده شده: 2008-12-18 11:49:07
# اولویت: بالا
# بررسی_توسط: xaprb
# بازبینی_در: 2008-12-18 15:03:11

این ابرداده مفید است زیرا، با تجزیه و تحلیل سوالات خود، نظرات خود را دریافت می کنید
درست در گزارش ادغام شده است.

اثر انگشت


اثر انگشت پرس و جو شکل انتزاعی یک پرس و جو است که امکان گروه بندی را فراهم می کند
پرس و جوهای مشابه با هم انتزاع یک پرس و جو مقادیر تحت اللفظی را حذف می کند، نرمال می کند
فضای خالی و غیره به عنوان مثال، این دو پرس و جو را در نظر بگیرید:

نام، رمز عبور از کاربر WHERE id='12823';
نام، رمز عبور را از کاربر انتخاب کنید
جایی که id=5;

هر دوی این پرس و جوها اثر انگشت خواهند داشت

نام، رمز عبور را از کاربر انتخاب کنید که در آن id=؟

هنگامی که اثر انگشت پرس و جو مشخص شد، می توانیم در مورد یک پرس و جو به گونه ای صحبت کنیم که گویی وجود دارد
همه پرس و جوهای مشابه را نشان می دهد.

کاری که "pt-query-digest" انجام می دهد مشابه یک عبارت GROUP BY در SQL است. (اما توجه داشته باشید که
"چند ستون" یک گروه بندی چند ستونی را تعریف نمی کند. چندین گزارش تعریف می کند!)
اگر خط فرمان شما به این شکل است،

pt-query-digest \
--گروه بر اثر انگشت \
--order-by Query_time:sum \
-- حد 10 \
کند.log

شبه SQL مربوطه به شکل زیر است:

بدترین را انتخاب کنید (پرس و جو بر اساس زمان_پرسش)، جمع (زمان_پرسش)، ...
FROM /path/to/slow.log
گروه بر اساس اثر انگشت (پرس و جو)
ORDER BY SUM (Query_time) DESC
LIMIT 10

شما همچنین می توانید از مقدار "تقطیر" استفاده کنید که نوعی اثر انگشت فوق العاده است. دیدن
"--گروهی" برای اطلاعات بیشتر.

انگشت نگاری پرس و جو بسیاری از موارد خاص را در بر می گیرد که در این مورد ضروری است
دنیای واقعی. به عنوان مثال، یک لیست "IN" با 5 حرف واقعا معادل یک لیست با 4 است
به معنای واقعی کلمه، بنابراین فهرستی از لفظ ها به یک واحد جمع می شود. اگر چیزی پیدا کردید که
به درستی انگشت نگاری نشده است، لطفاً یک گزارش اشکال با یک مورد آزمایشی تکرارپذیر ارسال کنید.

در اینجا لیستی از تغییرات در حین انگشت نگاری وجود دارد که ممکن است جامع نباشد:

· همه پرس و جوهای SELECT از mysqldump را با هم گروه بندی کنید، حتی اگر مخالف متفاوتی باشند
جداول همین امر در مورد تمام پرس و جوهای pt-table-checksum صدق می کند.

· عبارات INSERT چند ارزشی را به یک واحد کوتاه کنید ارزش های() فهرست

· نظرات را حذف کنید.

· انتزاع پایگاه داده در عبارات USE، بنابراین تمام عبارات USE با هم گروه بندی می شوند.

· جایگزین تمام لفظ ها، مانند رشته های نقل شده. برای کارایی، کدی که جایگزین می شود
اعداد تحت اللفظی تا حدودی غیرانتخابی هستند و ممکن است جایگزین برخی چیزها به عنوان اعداد شوند
وقتی واقعا نیستند لفظ هگزادسیمال نیز جایگزین شده است. NULL به عنوان رفتار می شود
به معنای واقعی کلمه اعداد جاسازی شده در شناسه ها نیز جایگزین می شوند، بنابراین جداول نامگذاری می شوند
به طور مشابه با همان مقادیر (به عنوان مثال users_2009 و users_2010) اثر انگشت خواهد شد
به طور یکسان اثر انگشت خواهد داشت).

· همه فضاهای سفید را در یک فضای واحد جمع کنید.

· حروف کوچک کل پرس و جو.

· جایگزین تمام حروف در داخل که در() و ارزش های() لیست هایی با یک مکان نگهدار واحد،
بدون توجه به اصل بودن

· پرس و جوهای متعدد UNION یکسان را در یک مورد جمع کنید.

OPTIONS


این ابزار آرگومان های اضافی خط فرمان را می پذیرد. به "خلاصه" و استفاده مراجعه کنید
اطلاعات برای جزئیات

--ask-pass
هنگام اتصال به MySQL یک رمز عبور درخواست کنید.

--ویژگی-نام مستعار
نوع: آرایه پیش فرض: db|شما

فهرست ویژگی|نام مستعار و غیره

برخی از ویژگی ها دارای چندین نام هستند، مانند db و Schema. اگر یک رویداد ندارد
ویژگی اصلی، pt-query-digest به دنبال یک ویژگی مستعار است. اگر آن را پیدا کند
نام مستعار، ویژگی اولیه را با مقدار ویژگی مستعار ایجاد می کند و حذف می کند
ویژگی مستعار

اگر رویداد دارای ویژگی اولیه باشد، تمام ویژگی های مستعار حذف می شوند.

این به ساده‌سازی ویژگی‌های رویداد کمک می‌کند تا مثلاً گزارشی وجود نداشته باشد
خطوط برای db و Schema.

--ویژگی-مقدار-محدودیت
نوع: int; پیش فرض: 4294967296

یک محدودیت عقلانی برای مقادیر ویژگی.

این گزینه با اشکالاتی در عملکرد ثبت کند که باعث ایجاد مقادیر زیادی برای می شود، سروکار دارد
ویژگی های. اگر مقدار مشخصه بزرگتر از این باشد، مقدار آخرین مشاهده شده برای
به جای آن از آن کلاس پرس و جو استفاده می شود.

-- مجموعه حروف
فرم کوتاه: -A; نوع: رشته

مجموعه کاراکترهای پیش فرض اگر مقدار utf8 باشد، حالت binmode Perl را در STDOUT روی utf8 تنظیم کنید.
گزینه mysql_enable_utf8 را به DBD::mysql منتقل می کند و SET NAMES UTF8 را بعد از آن اجرا می کند.
اتصال به MySQL هر مقدار دیگری، binmode را در STDOUT بدون لایه utf8 تنظیم می کند.
و SET NAMES را پس از اتصال به MySQL اجرا می کند.

- پیکربندی
نوع: آرایه

این لیست فایل های پیکربندی جدا شده با کاما را بخوانید. اگر مشخص شود، این باید اولین مورد باشد
گزینه در خط فرمان

--[no]continue-on-error
پیش فرض: بله

حتی اگر خطایی وجود داشت به تجزیه ادامه دهید. ابزار برای همیشه ادامه نخواهد داشت: آن
زمانی که هر فرآیندی 100 خطا ایجاد کند متوقف می شود، در این صورت احتمالاً یک اشکال در آن وجود دارد
ابزار یا ورودی نامعتبر است.

--[no]create-history-table
پیش فرض: بله

اگر جدول "--history" وجود ندارد، ایجاد کنید.

این گزینه باعث می شود که جدول مشخص شده توسط "--history" با پیش فرض ایجاد شود
ساختار نشان داده شده در اسناد "--history".

--[no]create-review-table
پیش فرض: بله

اگر جدول "--review" وجود ندارد، ایجاد کنید.

این گزینه باعث می شود جدول مشخص شده توسط "--review" با پیش فرض ایجاد شود
ساختار نشان داده شده در مستندات برای "--بازبینی".

-- شیطان سازی
چنگال را به پس زمینه ببرید و از پوسته جدا شوید. فقط سیستم عامل های POSIX

-- پایگاه داده
فرم کوتاه: -D; نوع: رشته

به این پایگاه داده متصل شوید.

---فایل پیش فرض
فرم کوتاه: -F; نوع: رشته

فقط گزینه های mysql را از فایل داده شده بخوانید. شما باید یک pathname مطلق بدهید.

- embedded-attributes
نوع: آرایه

دو الگوی پرل regex برای گرفتن شبه ویژگی های تعبیه شده در پرس و جوها.

ویژگی‌های جاسازی‌شده ممکن است جفت‌های خاصیت-مقدار خاصی باشند که شما در آنها پنهان کرده‌اید
نظرات. اولین regex باید با کل مجموعه ویژگی ها مطابقت داشته باشد (در صورت وجود
متعدد هستند). Regex دوم باید جفت‌های ویژگی-مقدار را مطابقت دهد و از آن گرفته شود
اولین رژکس

برای مثال، فرض کنید پرس و جو شما به شکل زیر باشد:

SELECT * از کاربران -- فایل: /login.php، خط: 493;

می توانید pt-query-digest را با گزینه زیر اجرا کنید:

pt-query-digest --embedded-attributes '- .*','(\w+): ([^\,]+)'

اولین عبارت منظم کل کامنت را می گیرد:

" -- فایل: /login.php، خط: 493;"

مورد دوم آن را به جفت های ویژگی-مقدار تقسیم می کند و آنها را به رویداد اضافه می کند:

ارزش ویژگی
====================
فایل /login.php
خط 493

توجه داشته باشید: تمام کاماها در الگوهای regex باید با \ خارج شوند در غیر این صورت الگو
خواهد شکست.

---محدوده مورد انتظار
نوع: آرایه پیش فرض: 5,10،XNUMX

مواردی را که بیشتر یا کمتر از حد انتظار هستند توضیح دهید.

تعداد مواردی را که انتظار می رود در گزارش ارائه شده توسط "--[no]report" مشاهده شود، تعریف می کند.
همانطور که توسط "--limit" و "--outliers" کنترل می شود. اگر موارد بیشتر یا کمتری در
گزارش، هر کدام توضیح خواهند داد که چرا شامل شده است.

--توضیح
نوع: DSN

EXPLAIN را برای کوئری نمونه با این DSN اجرا کنید و نتایج را چاپ کنید.

این فقط زمانی کار می‌کند که «--group-by» دارای اثر انگشت باشد. باعث pt-query-digest می شود
EXPLAIN را اجرا کنید و خروجی را در گزارش وارد کنید. برای ایمنی، پرسش‌هایی که ظاهر می‌شوند
برای داشتن پرس و جوی فرعی که EXPLAIN اجرا می کند، توضیح داده نمی شود. اینها معمولاً هستند
پرس و جوهای "جدول مشتق شده" از فرم

انتخاب ... از ( انتخاب .... ) der;

نتایج EXPLAIN به صورت یک فرمت عمودی کامل در گزارش رویداد چاپ می شود که
در پایان هر گزارش رویداد به سبک عمودی ("\G") درست مانند MySQL ظاهر می شود
آن را چاپ می کند.

-- فیلتر
نوع: رشته

رویدادهایی را که این کد Perl برای آنها true برنمی‌گرداند را کنار بگذارید.

این گزینه رشته ای از کد پرل یا فایلی حاوی کد پرل است که کامپایل می شود
به یک زیربرنامه با یک آرگومان: $event. این یک هشرف است. اگر مقدار داده شده
یک فایل قابل خواندن است، سپس pt-query-digest کل فایل را می خواند و از محتویات آن استفاده می کند
به عنوان کد فایل نباید حاوی شبانگ (#!/usr/bin/perl) خط

اگر کد درست برگردد، زنجیره تماس‌ها ادامه می‌یابد. در غیر این صورت تمام می شود را
کد آخرین عبارت در زیر روال غیر از "return $event" است. در
قالب زیربرنامه این است:

sub {$event = shift; فیلتر && بازگشت $event; }

فیلترهای داده شده در خط فرمان در داخل پرانتز مانند "( filter
)". برای فیلترهای پیچیده و چند خطی، باید کد را در یک فایل قرار دهید تا این کار انجام شود
داخل پرانتز پیچیده نشود در هر صورت، فیلتر باید به صورت نحوی تولید کند
کد معتبر با توجه به الگو به عنوان مثال، یک شاخه if-else که روی دستور داده شده است
خط معتبر نخواهد بود:

--filter 'if () { } else { }' # WRONG

از آنجایی که در خط فرمان داده شده است، شاخه if-else داخل آن پیچیده می شود
پرانتز که از نظر نحوی معتبر نیست. بنابراین برای انجام کاری پیچیده تر
مانند این نیاز به قرار دادن کد در یک فایل، به عنوان مثال filter.txt:

$event_ok من; if (...) { $event_ok=1; } else { $event_ok=0; } $event_ok

سپس "--filter filter.txt" را برای خواندن کد از filter.txt مشخص کنید.

اگر کد فیلتر کامپایل نشود، pt-query-digest با یک خطا از بین می رود. اگر
کد فیلتر کامپایل می شود، اگر کد سعی کند این کار را انجام دهد ممکن است همچنان در زمان اجرا خطایی رخ دهد
چیزی اشتباه است (مثل مطابقت الگوی یک مقدار تعریف نشده). pt-query-digest نمی کند
هرگونه حفاظتی را ارائه دهید، بنابراین با دقت کدنویسی کنید!

یک فیلتر نمونه که همه چیز را به جز دستورهای SELECT کنار می‌گذارد:

--filter '$event->{arg} =~ m/^select/i'

این در یک زیر روال مانند زیر کامپایل شده است:

sub {$event = shift; ( $event->{arg} =~ m/^select/i ) && return $event; }

مجاز است که کد دارای عوارض جانبی باشد (برای تغییر $event).

برای فهرستی از ویژگی‌های رایج و خاص «--type» به «مرجع ویژگی‌ها» مراجعه کنید.

در اینجا نمونه های بیشتری از کد فیلتر وجود دارد:

میزبان/IP با domain.com مطابقت دارد
--filter '($event->{host} || $event->{ip} || "") =~ m/domain.com/'

گاهی اوقات MySQL میزبانی را که IP مورد انتظار است ثبت می کند. بنابراین، ما هر دو را بررسی می کنیم.

کاربر با جان مطابقت دارد
--filter '($event->{user} || "") =~ m/john/'

بیش از 1 هشدار
--filter '($event->{Warning_count} || 0) > 1'

Query اسکن کامل جدول یا اتصال کامل را انجام می دهد
--filter '(($event->{Full_scan} || "") معادل "بله") || (($event->{Full_join} || "")
معادل "بله")'

پرس و جو از کش پرس و جو ارائه نشد
--filter '($event->{QC_Hit} || "") معادل "نه"'

پرس و جو 1 مگابایت یا بزرگتر است
--filter '$event->{bytes} >= 1_048_576'

از آنجایی که "--filter" به شما امکان می دهد $event را تغییر دهید، می توانید از آن برای انجام کارهای دیگری مانند
ایجاد ویژگی های جدید برای مثال به "ویژگی ها" مراجعه کنید.

--دسته بندی بر اساس
نوع: آرایه; پیش فرض: اثر انگشت

کدام ویژگی رویدادها بر اساس گروه بندی شوند.

به طور کلی، می توانید پرس و جوها را بر اساس هر ویژگی پرس و جو در کلاس ها گروه بندی کنید.
مانند "user" یا "db" که به طور پیش فرض به شما نشان می دهد کدام کاربران و کدام پایگاه داده
بیشترین "Query_time" را دریافت کنید. ویژگی پیش‌فرض، «اثر انگشت»، گروه‌های مشابه،
پرس و جوهای انتزاعی در کلاس ها. زیر را ببینید و همچنین "اثر انگشت" را ببینید.

یک گزارش برای هر مقدار "--گروه-بر اساس" چاپ می شود (مگر اینکه "--no-report" داده شود).
بنابراین، "--group-by user, db" به معنای "گزارش در مورد درخواست ها با همان کاربر و گزارش است.
در پرس و جوهایی با همان db"؛ این به معنای "گزارش در مورد جستارهای با همان کاربر" نیست
و db." همچنین به "OUTPUT" مراجعه کنید.

هر مقدار باید یک مقدار متناظر در همان موقعیت در "--order-by" داشته باشد.
با این حال، افزودن مقادیر به "--group-by" به طور خودکار مقادیری را به "--order-by" اضافه می کند.
برای راحتی شما.

چندین ارزش جادویی وجود دارد که باعث می شود قبل از انجام برخی داده کاوی اضافی انجام شود
گروه بندی صورت می گیرد:

اثر انگشت
این باعث می‌شود که رویدادها به صورت انتزاعی به شکل متعارف انگشت نگاری شوند.
که سپس برای گروه بندی رویدادها در یک کلاس استفاده می شود. "اثر انگشت" را ببینید
بیشتر در مورد انگشت نگاری

جداول
این باعث می شود که رویدادها برای آنچه به نظر جداول هستند بازرسی شوند و سپس
توسط آن جمع شده است. توجه داشته باشید که پرس و جوی حاوی دو یا چند جدول خواهد بود
به تعداد جداول شمارش می شود. بنابراین پیوستن به دو جدول به حساب می آید
Query_time در برابر هر دو جدول.

تقطیر کردن
این یک نوع اثرانگشت فوق العاده است که پرس و جوها را در یک پیشنهاد جمع می کند
از کارهایی که انجام می دهند، مانند "INSERT SELECT table1 table2".

--کمک
نشان دادن کمک و خروج.

--تاریخ
نوع: DSN

معیارها را برای هر کلاس پرس و جو در جدول داده شده ذخیره کنید. pt-query-digest پرس و جو را ذخیره می کند
معیارها (زمان پرس و جو، زمان قفل، و غیره) را به این جدول، بنابراین شما می توانید ببینید که چگونه کلاس های پرس و جو
تغییر در طول زمان.

جدول پیش فرض "percona_schema.query_history" است. پایگاه داده (D) و جدول را مشخص کنید
(t) گزینه های DSN برای لغو پیش فرض. پایگاه داده و جدول به صورت خودکار هستند
ایجاد می شود مگر اینکه "--no-create-history-table" مشخص شده باشد (نگاه کنید به
"--[no]create-history-table").

pt-query-digest ستون های جدول را بررسی می کند. جدول باید حداقل داشته باشد
ستون های زیر:

ایجاد جدول query_review_history (
جمع کنترلی BIGINT بدون علامت NOT NULL،
متن نمونه NOT NULL
);

هر ستونی که در بالا ذکر نشده است، بررسی می شود تا ببینیم آیا از یک نامگذاری خاص پیروی می کنند یا خیر
قرارداد. اگر نام با زیرخط به دنبال هر یک به پایان برسد، ستون خاص است
از این مقادیر:

pct|متوسط|cnt|جمع|دقیقه|حداکثر|pct_95|stddev|میانگین|رتبه

اگر ستون با یکی از آن مقادیر به پایان برسد، پیشوند به عنوان تعبیر می شود
ویژگی رویداد در آن ستون ذخیره می شود و پسوند به عنوان متریک تفسیر می شود
ذخیره شود. به عنوان مثال، ستونی به نام "Query_time_min" برای ذخیره سازی استفاده خواهد شد
حداقل "Query_time" برای کلاس رویدادها.

جدول همچنین باید یک کلید اصلی داشته باشد، اما بستگی به نحوه شما دارد
می خواهید داده های تاریخی را ذخیره کنید. پیشنهاد می کنیم ستون های ts_min و ts_max را اضافه کنید
آنها را به همراه checksum بخشی از کلید اصلی می کند. اما شما همچنین می توانید فقط
یک ستون ts_min اضافه کنید و آن را به نوع DATE تبدیل کنید، بنابراین یک ردیف به ازای هر کلاس پرس و جو دریافت خواهید کرد.
در روز

تعریف جدول زیر برای "--[no]create-history-table" استفاده می شود:

ایجاد جدول در صورت عدم وجود query_history (
جمع کنترلی BIGINT بدون علامت NOT NULL،
متن نمونه NOT NULL،
ts_min DATETIME،
ts_max DATETIME،
ts_cnt FLOAT،
Query_time_sum FLOAT،
Query_time_min FLOAT،
Query_time_max FLOAT،
Query_time_pct_95 FLOAT،
Query_time_stddev FLOAT،
Query_time_median FLOAT،
Lock_time_sum FLOAT،
Lock_time_min FLOAT،
Lock_time_max FLOAT،
Lock_time_pct_95 FLOAT،
Lock_time_stddev FLOAT،
Lock_time_median FLOAT،
مجموع ردیف‌های ارسالی FLOAT،
Rows_sent_min FLOAT،
ردیف های ارسالی_حداکثر FLOAT،
Rows_sent_pct_95 FLOAT،
Rows_sent_stddev FLOAT،
Rows_sent_median FLOAT،
مجموع ردیف‌های بررسی شده FLOAT،
Rows_examined_min FLOAT،
Rows_examined_max FLOAT،
Rows_examined_pct_95 FLOAT،
Rows_examined_stddev FLOAT،
Rows_examined_median FLOAT،
- Percona ویژگی های slowlog را گسترش داد
-- http://www.percona.com/docs/wiki/patches:slow_extended
مجموع ردیف‌های_تأثیر_شده FLOAT،
Rows_afected_min FLOAT،
Rows_affected_max FLOAT،
Rows_affected_pct_95 FLOAT،
Rows_affected_stddev FLOAT،
Rows_afected_median FLOAT،
Rows_read_sum FLOAT،
ردیف_خواندن_دقیقه FLOAT،
Rows_read_max FLOAT،
Rows_read_pct_95 FLOAT،
Rows_read_stddev FLOAT،
Rows_read_median FLOAT،
Merge_passes_sum FLOAT,
Merge_passes_min FLOAT،
Merge_passes_max FLOAT،
Merge_passes_pct_95 FLOAT،
Merge_passes_stddev FLOAT،
Merge_passes_median FLOAT،
InnoDB_IO_r_ops_min FLOAT،
InnoDB_IO_r_ops_max FLOAT،
InnoDB_IO_r_ops_pct_95 FLOAT،
InnoDB_IO_r_ops_stddev FLOAT،
InnoDB_IO_r_ops_median FLOAT،
InnoDB_IO_r_bytes_min FLOAT،
InnoDB_IO_r_bytes_max FLOAT،
InnoDB_IO_r_bytes_pct_95 FLOAT،
InnoDB_IO_r_bytes_stddev FLOAT،
InnoDB_IO_r_bytes_median FLOAT،
InnoDB_IO_r_wait_min FLOAT،
InnoDB_IO_r_wait_max FLOAT،
InnoDB_IO_r_wait_pct_95 FLOAT،
InnoDB_IO_r_wait_stddev FLOAT،
InnoDB_IO_r_wait_median FLOAT،
InnoDB_rec_lock_wait_min FLOAT،
InnoDB_rec_lock_wait_max FLOAT،
InnoDB_rec_lock_wait_pct_95 FLOAT،
InnoDB_rec_lock_wait_stddev FLOAT،
InnoDB_rec_lock_wait_median FLOAT،
InnoDB_queue_wait_min FLOAT،
InnoDB_queue_wait_max FLOAT،
InnoDB_queue_wait_pct_95 FLOAT،
InnoDB_queue_wait_stddev FLOAT،
InnoDB_queue_wait_median FLOAT،
InnoDB_pages_distinct_min FLOAT،
InnoDB_pages_distinct_max FLOAT،
InnoDB_pages_distinct_pct_95 FLOAT،
InnoDB_pages_distinct_stddev FLOAT،
InnoDB_pages_distinct_median FLOAT،
- ویژگی های بولی (بله/خیر). فقط cnt و sum مورد نیاز است
-- برای اینها. cnt تعداد دفعاتی است که ویژگی ثبت شده است،
-- و مجموع تعداد دفعاتی است که مقدار بله بوده است. بنابراین
-- sum/cnt * 100 برابر با درصد دفعات ثبت شده است
-- مقدار بله بود.
QC_Hit_cnt FLOAT،
QC_Hit_sum FLOAT،
Full_scan_cnt FLOAT،
Full_scan_sum FLOAT،
Full_join_cnt FLOAT،
Full_join_sum FLOAT،
Tmp_table_cnt FLOAT،
Tmp_table_sum FLOAT،
Tmp_table_on_disk_cnt FLOAT،
Tmp_table_on_disk_sum FLOAT،
Filesort_cnt FLOAT،
Filesort_sum FLOAT،
Filesort_on_disk_cnt FLOAT،
Filesort_on_disk_sum FLOAT،
کلید اولیه (جمع بررسی، ts_min، ts_max)
);

توجه داشته باشید که ما تعداد (cnt) را فقط برای ویژگی ts ذخیره می کنیم. زائد خواهد بود
این را برای ویژگی های دیگر ذخیره کنید.

-روح
فرم کوتاه: -h; نوع: رشته

به هاست متصل شوید.

--نادیده گرفتن-ویژگی ها
نوع: آرایه پیش فرض: arg، cmd، insert_id، ip، port، Thread_id، timestamp، exptime،
flags، key، res، val، server_id، offset، end_log_pos، Xid

این ویژگی ها را جمع نکنید. برخی از ویژگی ها معیارهای پرس و جو نیستند بلکه ابرداده هستند
که نیازی به تجمیع (یا نمی تواند) باشد.

- وراثت-ویژگی ها
نوع: آرایه پیش فرض: db,ts

در صورت عدم وجود، این ویژگی ها را از آخرین رویدادی که آنها را داشت به ارث ببرید.

این گزینه تعیین می‌کند که کدام ویژگی‌ها به ارث برده می‌شوند یا به رویدادهایی منتقل می‌شوند که این کار را انجام می‌دهند
آنها را نداشته باشند به عنوان مثال، اگر یک رویداد دارای ویژگی db برابر با "foo" باشد، اما
رویداد بعدی ویژگی db را ندارد، سپس "foo" را برای ویژگی db خود به ارث می برد.

--فاصله
نوع: شناور؛ پیش فرض: .1

تعداد دفعات نظرسنجی لیست فرآیند، در چند ثانیه.

--تکرارها
نوع: int; پیش فرض: 1

چند بار در چرخه جمع آوری و گزارش تکرار شود. اگر 0 بود، تکرار کنید
بی نهایت. هر تکرار برای مدت زمان "--run-time" اجرا می شود. یک تکرار است
معمولاً با یک مقدار زمان تعیین می شود و زمانی که آن مقدار از یک گزارش چاپ می شود
زمان می گذرد با "--run-time-mode" "interval" یک بازه به جای آن توسط
بازه زمانی که با "--run-time" مشخص می کنید. به "--run-time" و مراجعه کنید
"--run-time-mode" برای اطلاعات بیشتر.

--حد
نوع: آرایه; پیش فرض: 95%:20

خروجی را به درصد یا تعداد معین محدود کنید.

اگر آرگومان یک عدد صحیح است، فقط N بدترین جستارها را گزارش کنید. اگر استدلال
یک عدد صحیح و به دنبال آن علامت "%" است، آن درصد از بدترین جستجوها را گزارش کنید.
اگر بعد از درصد یک دونقطه و یک عدد صحیح دیگر وجود دارد، بالا را گزارش کنید
درصد یا عدد مشخص شده توسط آن عدد صحیح، هر کدام که اول باشد.

این مقدار در واقع یک آرایه از مقادیر جدا شده با کاما است که برای هر آیتم یک عدد وجود دارد
"--دسته بندی بر اساس". اگر برای هیچ یک از آن موارد مقداری تعیین نکنید، پیش‌فرض مقدار است
بالای 95 درصد

همچنین به "--outliers" مراجعه کنید.

-- ثبت نام
نوع: رشته

همه خروجی‌ها را در زمانی که دیمونیزه می‌شوند در این فایل چاپ کنید.

--سفارش توسط
نوع: آرایه; پیش فرض: Query_time:sum

رویدادها را بر اساس این ویژگی و تابع جمع مرتب کنید.

این فهرستی از عبارت‌های ترتیب‌بندی شده با کاما است، یکی برای هر «--group-by»
صفت. پیش‌فرض «Query_time:sum» برای ویژگی‌های «--group-by» بدون استفاده می‌شود
به صراحت ویژگی های "--order-by" داده شده است (یعنی اگر بیشتر "--group-by" را مشخص کنید
ویژگی‌ها نسبت به ویژگی‌های متناظر «--order-by»). نحو است
"ویژگی:جمع". برای ویژگی های معتبر به "ویژگی ها" مراجعه کنید. مجموعه های معتبر عبارتند از:

معنی جمع
=====================================
مجموع مجموع / مقدار صفت کل
حداقل مقدار مشخصه حداقل
حداکثر حداکثر مقدار مشخصه
cnt فرکانس/تعداد پرس و جو

به عنوان مثال، پیش فرض "Query_time:sum" به این معنی است که در تجزیه و تحلیل پرس و جو، پرس و جو می شود
گزارش بر اساس کل زمان اجرای پرس و جو ("زمان Exec") مرتب می شود.
"Query_time:max" پرس و جوها را بر اساس حداکثر زمان اجرای پرس و جو مرتب می کند، بنابراین
پرس و جو با بزرگترین "Query_time" ابتدا در لیست قرار می گیرد. "cnt" بیشتر به
فراوانی پرس و جو به عنوان یک کل، هر چند وقت یکبار ظاهر می شود. "شمار" آن است
خط مربوطه در گزارش تحلیل پرس و جو بنابراین هر ویژگی و "cnt" باید
همان گزارشی را ارائه می دهد که در آن پرس و جوها بر اساس تعداد دفعاتی که ظاهر می شوند مرتب می شوند.

هنگام تجزیه گزارش های عمومی ("--type" "genlog")، پیش فرض "--order-by" تبدیل می شود.
"Query_time:cnt". گزارش‌های عمومی زمان‌های پرس و جو را گزارش نمی‌کنند، بنابراین فقط "cnt" را جمع می‌کند
منطقی است زیرا تمام زمان های پرس و جو صفر هستند.

اگر مشخصه ای را مشخص کنید که در رویدادها وجود ندارد، pt-query-digest
به حالت پیش‌فرض «Query_time:sum» برمی‌گردد و اعلامیه‌ای را در ابتدای آن چاپ می‌کند
گزارش برای هر کلاس پرس و جو شما می توانید ویژگی ها را با "--filter" ایجاد کنید و بر اساس آن ترتیب دهید
آنها؛ برای مثال "ویژگی ها" را ببینید.

-- پرت
نوع: آرایه پیش‌فرض: Query_time: 1:10

موارد پرت را بر اساس ویژگی: درصد: تعداد گزارش کنید.

نحو این گزینه لیستی از رشته های جدا شده با دو نقطه است. در
فیلد اول مشخصه ای است که با آن یک نقطه پرت تعریف می شود. دومی یک عدد است
که با صدک 95 صفت مقایسه می شود. سومی اختیاری است و هست
در مقایسه با مجموع cnt ویژگی. کوئری هایی که این مشخصات را پاس می کنند هستند
بدون توجه به محدودیت هایی که در "--limit" مشخص کرده اید، به گزارش اضافه شده است.

به عنوان مثال، برای گزارش پرس و جوهایی که صدک 95 آنها Query_time حداقل 60 ثانیه است
و حداقل 5 بار دیده می شوند، از آرگومان زیر استفاده کنید:

-- Outliers Query_time:60:5

می توانید برای هر مقدار در "--group-by" یک گزینه --outliers تعیین کنید.

-- خروجی
نوع: رشته; پیش فرض: گزارش

نحوه قالب بندی و چاپ نتایج تجزیه و تحلیل پرس و جو مقادیر پذیرفته شده عبارتند از:

فرمت ارزش
=====================================
گزارش گزارش تحلیل پرس و جو استاندارد
slowlog MySQL لاگ کند
json JSON، در آرایه در هر کلاس پرس و جو
json-anon JSON بدون نمونه پرس و جو

کل خروجی "گزارش" را می توان با مشخص کردن "--no-report" غیرفعال کرد (نگاه کنید به
«--[no]گزارش»)، و بخش‌های آن را می‌توان با مشخص کردن غیرفعال یا مرتب کرد
"--قالب-گزارش".

خروجی "json" در 2.2.1 معرفی شد و هنوز در حال توسعه است، بنابراین داده ها
ساختار ممکن است در نسخه های بعدی تغییر کند.

--کلمه عبور
فرم کوتاه: -p; نوع: رشته

رمز عبور برای استفاده در هنگام اتصال. اگر رمز عبور حاوی کاما باشد، باید از آنها فرار کرد
با علامت معکوس: "exam\,ple"

-پید
نوع: رشته

فایل PID داده شده را ایجاد کنید. اگر فایل PID از قبل وجود داشته باشد، ابزار شروع نمی شود
PID موجود در آن با PID فعلی متفاوت است. با این حال، اگر فایل PID
وجود دارد و PID موجود در آن دیگر در حال اجرا نیست، ابزار PID را بازنویسی می کند
فایل با PID فعلی پس از خروج ابزار، فایل PID به طور خودکار حذف می شود.

--بندر
فرم کوتاه: -P; نوع: بین المللی

شماره پورت برای استفاده برای اتصال.

-- لیست فرآیندها
نوع: DSN

این لیست فرآیند DSN را برای پرس و جوها، با خواب "--interval" بین نظرسنجی کنید.

اگر اتصال ناموفق باشد، pt-query-digest سعی می کند آن را یک بار در ثانیه باز کند.

--پیش رفتن
نوع: آرایه پیش فرض: زمان، 30

گزارش های پیشرفت را در STDERR چاپ کنید. مقدار یک لیست جدا شده با کاما با دو قسمت است.
بخش اول می تواند درصد، زمان یا تکرار باشد. قسمت دوم چگونگی را مشخص می کند
اغلب یک به روز رسانی باید بر حسب درصد، ثانیه یا تعداد تکرار چاپ شود.

------خواندن
نوع: زمان؛ پیش فرض: 0

این مدت برای یک رویداد از ورودی صبر کنید. 0 برای همیشه صبر کنید.

این گزینه حداکثر زمان انتظار برای یک رویداد را از ورودی تعیین می کند. اعمال می شود
همه انواع ورودی به جز "--processlist". اگر رویدادی پس از دریافت نشد
زمان مشخص شده، اسکریپت خواندن ورودی را متوقف می کند و گزارش های خود را چاپ می کند. اگر
"--iterations" 0 یا بزرگتر از 1 است، تکرار بعدی شروع می شود، در غیر این صورت اسکریپت
خارج خواهد شد

این گزینه به ماژول Perl POSIX نیاز دارد.

--[نه]گزارش
پیش فرض: بله

چاپ گزارش تجزیه و تحلیل پرس و جو برای هر ویژگی "--group-by". این استاندارد است
عملکرد تحلیل لاگ کند برای توضیح کارهایی که این کار انجام می دهد، «خروجی» را ببینید
و نتایج چگونه است.

اگر به گزارشی نیاز ندارید (به عنوان مثال، هنگام استفاده از "--review" یا "--history")،
بهتر است "--no-report" را مشخص کنید زیرا این امکان را به ابزار می دهد تا از مقداری گران قیمت صرف نظر کند
عملیات.

--گزارش همه
همه پرس و جوها، حتی مواردی که بررسی شده اند را گزارش دهید. این فقط بر "گزارش" تأثیر می گذارد
"--output" هنگام استفاده از "--review". در غیر این صورت، همه پرس و جوها همیشه چاپ می شوند.

-قالب گزارش
نوع: آرایه; پیش‌فرض: rusage، تاریخ، نام میزبان، فایل‌ها، سرصفحه، نمایه، query_report، آماده شده

این بخش از گزارش تحلیل پرس و جو را چاپ کنید.

بخش چاپ
================================================== =================
rusage زمان های CPU و استفاده از حافظه گزارش شده توسط ps
تاریخ تاریخ و زمان محلی فعلی
نام میزبان نام میزبان ماشینی که pt-query-digest روی آن اجرا شده است
فایل‌ها فایل‌های ورودی خواندن/تجزیه
هدر خلاصه ای از کل اجرای آنالیز
نمایه جدول فشرده پرس و جوها برای نمای کلی گزارش
query_report اطلاعات دقیق در مورد هر پرس و جو منحصر به فرد
تهیه اظهارات آماده شده

بخش ها به ترتیب مشخص شده چاپ می شوند. رواج، تاریخ، فایل ها و هدر
بخش ها با هم گروه بندی می شوند اگر با هم مشخص شوند. بخش های دیگر با جدا شده اند
خطوط خالی

برای اطلاعات بیشتر در مورد بخش‌های مختلف گزارش پرس و جو، «خروجی» را ببینید.

--گزارش-هیستوگرام
نوع: رشته; پیش فرض: Query_time

توزیع مقادیر این ویژگی را نمودار کنید.

نمودار توزیع به ویژگی های مبتنی بر زمان محدود می شود، بنابراین نمودار
برای مثال، "Rows_examined" یک نمودار بی فایده تولید می کند. نمودارها به این صورت هستند:

# توزیع_زمان پرس و جو
# 1 ما
# 10 ما
# 100 ما
# 1 میلی ثانیه
# 10ms ##########################
# 100ms ############################################# ########
# 1s ########
# 10s+

برای اطلاعات بیشتر به "OUTPUT" مراجعه کنید.

--از سرگیری
نوع: رشته

اگر مشخص شده باشد، ابزار آخرین آفست فایل را، در صورت وجود، در مورد داده شده می نویسد
نام فایل. وقتی دوباره با همان مقدار برای این گزینه اجرا شد، ابزار آخرین را می خواند
فایل افست شده از فایل، به دنبال آن موقعیت در گزارش است، و تجزیه را از سر می گیرد
حوادث از آن نقطه به بعد

--مرور
نوع: DSN

کلاس های پرس و جو را برای بررسی بعدی ذخیره کنید و کلاس های قبلاً بررسی شده را گزارش ندهید.

جدول پیش فرض "percona_schema.query_review" است. پایگاه داده (D) و جدول را مشخص کنید
(t) گزینه های DSN برای لغو پیش فرض. پایگاه داده و جدول به صورت خودکار هستند
ایجاد می شود مگر اینکه "--no-create-review-table" مشخص شده باشد (نگاه کنید به
"--[no]create-review-table").

اگر جدول به صورت دستی ایجاد شده باشد، باید حداقل ستون های زیر را داشته باشد. شما
می توانید ستون های بیشتری را برای اهداف خاص خود اضافه کنید، اما آنها توسط pt- استفاده نمی شوند
query-digest

ایجاد جدول در صورت عدم وجود query_review (
جمع کنترلی BIGINT unsigned NOT NULL PRIMARY KEY،
متن اثر انگشت NOT NULL،
متن نمونه NOT NULL،
first_seen DATETIME،
last_seen DATETIME،
بازبینی شده توسط وارچار(20)
بررسی_در DATETIME،
نظرات TEXT
)

ستون ها عبارتند از:

معنی ستون
================================================= ==============
چک جمع (checksum) جمع بررسی 64 بیتی اثر انگشت پرس و جو
اثر انگشت نسخه انتزاعی پرس و جو. کلید اصلی آن
نمونه متن پرس و جو نمونه ای از کلاس پرس و جوها
first_seen کوچکترین مهر زمانی این دسته از جستارها
last_seen بزرگترین مهر زمانی این دسته از جستارها
reviewed_by در ابتدا NULL; در صورت تنظیم، پرس و جو پس از آن نادیده گرفته می شود
reviewed_on در ابتدا NULL; معنی خاصی برای آن قائل نشده است
نظرات در ابتدا NULL; معنی خاصی برای آن قائل نشده است

توجه داشته باشید که ستون "اثر انگشت" کلید اصلی واقعی برای یک کلاس از جستارها است.
"checksum" فقط یک هش رمزنگاری از این مقدار است که کوتاه‌تر را ارائه می‌کند
ارزشی که به احتمال بسیار زیاد نیز منحصر به فرد است.

پس از تجزیه و جمع‌آوری رویدادها، جدول شما باید دارای یک ردیف برای هر کدام باشد
اثر انگشت. این گزینه به «--group-by-printprint» (که پیش‌فرض است) بستگی دارد.
در غیر این صورت کار نخواهد کرد.

-- زمان اجرا
نوع: زمان

چه مدت برای هر "--تکرار" اجرا شود. پیش فرض این است که برای همیشه اجرا شود (شما می توانید
قطع با CTRL-C). زیرا "--iterations" به طور پیش فرض 1 است، اگر فقط مشخص کنید
"--run-time"، pt-query-digest برای آن مدت زمان اجرا می شود و سپس خارج می شود. این دو
گزینه ها با هم برای انجام چرخه های جمع آوری و گزارش مشخص می شوند. مثلا،
تعیین "--تکرار" 4 "--run-time" "15m" با ورودی پیوسته (مانند STDIN یا
"--processlist") باعث می شود pt-query-digest به مدت 1 ساعت (15 دقیقه در 4) اجرا شود.
گزارش چهار بار، یک بار در هر فاصله 15 دقیقه.

- حالت زمان اجرا
نوع: رشته; پیش فرض: ساعت

مقدار "--run-time" را تنظیم کنید. در زیر مقادیر ممکن برای
این گزینه:

ساعت
"--run-time" مقداری از زمان واقعی ساعت را مشخص می کند که در طی آن ابزار باید
برای هر "--تکرار" اجرا شود.

واقعه
"--run-time" مقدار زمان ثبت را مشخص می کند. زمان ثبت با تعیین می شود
مهر زمانی در گزارش اولین مُهر زمانی که دیده می شود و هر مهر زمانی به خاطر سپرده می شود
پس از آن با اولین مورد مقایسه می شود تا مشخص شود که چه مدت زمان ورود به سیستم گذشته است.
به عنوان مثال، اگر اولین مهر زمانی که مشاهده می شود "12:00:00" و بعدی "12:01:30" باشد،
که 1 دقیقه و 30 ثانیه زمان ثبت است. این ابزار رویدادها را تا زمانی که
زمان ورود بزرگتر یا مساوی با مقدار مشخص شده "--run-time" است.

از آنجایی که مُهرهای زمانی در گزارش‌ها همیشه چاپ نمی‌شوند، یا همیشه چاپ نمی‌شوند،
این حالت از نظر دقت متفاوت است.

فاصله
"--run-time" مرزهای بازه‌ای از زمان ورود را مشخص می‌کند که رویدادها در آن قرار دارند
تقسیم شده و گزارش ها تولید می شود. این حالت با بقیه متفاوت است زیرا
مدت زمان اجرا را مشخص نمی کند. مقدار "--run-time" باید یک بازه باشد
که به طور مساوی به دقیقه، ساعت یا روز تقسیم می شود. به عنوان مثال، "5m" به طور مساوی تقسیم می شود
به ساعت (60/5=12، بنابراین 12 فواصل 5 دقیقه ای در ساعت) اما "7m" اینطور نیست
(60/7=8.6).

تعیین "--run-time-mode interval --run-time 30m --iterations 0" مشابه
تعیین "--run-time-mode clock --run-time 30m --iterations 0". در آینده
مورد، pt-query-digest برای همیشه اجرا می شود و هر 30 دقیقه گزارش تولید می کند، اما
این فقط با ورودی های پیوسته مانند STDIN و the به طور موثر کار می کند
لیست فرآیندها برای ورودی های ثابت، مانند فایل های گزارش، مثال قبلی تولید می کند
گزارش های متعدد با تقسیم ورود به فواصل 30 دقیقه ای بر اساس
مهر زمانی

فواصل زمانی از صفر ثانیه/دقیقه/ساعت محاسبه می‌شوند
رخ می دهد، نه از هر زمانی که مشخص می کند. مثلا با 30 دقیقه
فواصل زمانی و مهر زمانی "12:10:30"، فاصله است نه "12:10:30" به
"12:40:30"، "12:00:00" تا "12:29:59" است. یا با فواصل 1 ساعته هست
"12:00:00" تا "12:59:59". هنگامی که یک مهر زمانی جدید از فاصله زمانی بیشتر شود، یک گزارش است
چاپ می شود و بازه بعدی بر اساس مهر زمانی جدید مجدداً محاسبه می شود.

از آنجایی که "--iterations" به طور پیش فرض 1 است، احتمالاً می خواهید مقدار جدیدی را مشخص کنید
else pt-query-digest فقط اولین فاصله زمانی را از گزارش دریافت می کند و گزارش می دهد
از 1 بازه = 1 تکرار. اگر می خواهید هر بازه زمانی را در الف دریافت و گزارش کنید
وارد شوید، "--iterations" 0 را مشخص کنید.

--نمونه
نوع: بین المللی

همه موارد غیر از اولین N هر پرس و جو را فیلتر کنید. پرس و جوها فیلتر می شوند
اولین مقدار در "--group-by" است، بنابراین به طور پیش فرض، این مقدار با اثر انگشت پرس و جو فیلتر می شود.
به عنوان مثال، "--sample 2" اجازه دو پرس و جو نمونه برای هر اثر انگشت را می دهد. مفید
در ارتباط با "--output slowlog" برای چاپ پرس و جوها. احتمالاً می خواهید تنظیم کنید
"--بدون گزارش" برای جلوگیری از سربار جمع آوری و گزارش اگر فقط استفاده می کنید
این برای چاپ نمونه های پرس و جو. یک مثال کامل:

pt-query-digest --نمونه 2 --no-report --output slowlog slow.log

--set-vars
نوع: آرایه

متغیرهای MySQL را در این لیست جفت "variable=value" جدا شده با کاما تنظیم کنید.

به طور پیش فرض، ابزار مجموعه های زیر را تنظیم می کند:

wait_timeout=10000

متغیرهای مشخص شده در خط فرمان این پیش فرض ها را لغو می کنند. مثلا،
با تعیین "--set-vars wait_timeout=500" مقدار پیش فرض 10000 لغو می شود.

ابزار یک هشدار چاپ می کند و اگر متغیری تنظیم نشود ادامه می دهد.

--نمایش همه
نوع: هش

تمام مقادیر این ویژگی ها را نشان دهید.

به‌طور پیش‌فرض pt-query-digest فقط به همان تعداد از مقدار یک ویژگی را نشان می‌دهد که بر روی a قرار می‌گیرد
تک خط این گزینه به شما اجازه می دهد تا ویژگی هایی را مشخص کنید که تمام مقادیر برای آنها مشخص می شود
نشان داده شود (عرض خط نادیده گرفته می شود). این فقط برای ویژگی هایی با مقادیر رشته کار می کند
مانند کاربر، میزبان، db، و غیره. چندین ویژگی را می توان مشخص کرد، با کاما از هم جدا شدند.

--از آنجا که
نوع: رشته

فقط جستارهای جدیدتر از این مقدار را تجزیه کنید (جستجوها را از این تاریخ تجزیه کنید).

این گزینه به شما این امکان را می‌دهد که کوئری‌های قدیمی‌تر از مقدار معین را نادیده بگیرید و فقط آن‌ها را تجزیه کنید
پرس و جوهایی که جدیدتر از مقدار هستند. مقدار می تواند چندین نوع باشد:

* مقدار زمانی ساده N با پسوند اختیاری: N[shmd]، که در آن
s=ثانیه، h=ساعت، m=دقیقه، d=روز (پیش‌فرض s در صورت عدم وجود پسوند
داده شده)؛ این مانند گفتن "از N[shmd] پیش" است
* تاریخ کامل با ساعت اختیاری: دقیقه: ثانیه:
YYYY-MM-DD [HH:MM::SS]
* تاریخ کوتاه به سبک MySQL:
YYMMDD [HH:MM:SS]
* هر عبارت زمانی که توسط MySQL ارزیابی شود:
CURRENT_DATE - INTERVAL 7 روز

اگر یک عبارت زمانی MySQL بدهید و یک DSN نیز برای آن مشخص نکرده باشید
"--explain"، "--processlist"، یا "--review"، سپس باید یک DSN در
خط فرمان به طوری که pt-query-digest بتواند برای ارزیابی عبارت به MySQL متصل شود.

عبارت زمان MySQL درون یک کوئری مانند "SELECT" پیچیده شده است
UNIX_TIMESTAMP( )"، بنابراین مطمئن شوید که عبارت در داخل این معتبر است
پرس و جو. مثلا استفاده نکنید UNIX_TIMESTAMP() زیرا
UNIX_TIMESTAMP(UNIX_TIMESTAMP()) 0 را برمی گرداند.

رویدادها به ترتیب زمانی فرض می‌شوند: رویدادهای قدیمی‌تر در ابتدای گزارش
و رویدادهای جدیدتر در انتهای گزارش. "--از آنجا که" سخت است: همه پرس و جوها را نادیده می گیرد
تا زمانی که یکی پیدا شود که به اندازه کافی جدید باشد. بنابراین، اگر رویدادهای پرس و جو نیستند
به طور مداوم دارای مهر زمانی هستند، برخی ممکن است نادیده گرفته شوند که در واقع به اندازه کافی جدید هستند.

همچنین به "--تا" مراجعه کنید.

-- سوکت
فرم کوتاه: -S; نوع: رشته

فایل سوکت برای استفاده برای اتصال.

-- جدول زمانی
نمایش جدول زمانی رویدادها

این گزینه باعث می شود pt-query-digest نوع دیگری از گزارش را چاپ کند: یک جدول زمانی از
مناسبت ها. هر پرس و جو همچنان گروه بندی می شود و بر اساس کلاس ها جمع می شود
"--گروه بر اساس"، اما سپس آنها به ترتیب زمانی چاپ می شوند. گزارش جدول زمانی
مهر زمانی، فاصله زمانی، تعداد و مقدار هر کلاس را چاپ می کند.

اگر تنها چیزی که می‌خواهید گزارش جدول زمانی است، برای سرکوب کردن «--no-report» را مشخص کنید.
گزارش تحلیل پرس و جو پیش فرض در غیر این صورت، گزارش جدول زمانی در سایت چاپ خواهد شد
قبل از نمایه زمان پاسخ (به "--report-format" و "OUTPUT" مراجعه کنید).

به عنوان مثال ، این:

pt-query-digest /path/to/log --group-by distil ---timeline

چیزی شبیه به:

############################################### #######
# گزارش تقطیر
############################################### #######
# 2009-07-25 11:19:27 1+00:00:01 2 SELECT foo
# 2009-07-27 11:19:30 00:01 2 نوار انتخاب
# 2009-07-27 11:30:00 1+06:30:00 2 SELECT foo

--نوع
نوع: آرایه; پیش فرض: slowlog

نوع ورودی برای تجزیه. انواع مجاز هستند

بیلوگ
یک فایل لاگ باینری را که ابتدا با استفاده از mysqlbinlog به متن تبدیل شده است، تجزیه کنید.

مثلا:

mysqlbinlog mysql-bin.000441 > mysql-bin.000441.txt

pt-query-digest --type binlog mysql-bin.000441.txt

genlog
یک فایل گزارش عمومی MySQL را تجزیه کنید. گزارش‌های عمومی فاقد «ویژگی‌های» زیادی هستند، به ویژه
"زمان_پرسش". پیش‌فرض «--order-by» برای گزارش‌های عمومی به تغییر می‌کند
"Query_time:cnt".

کندی
یک فایل log را در هر گونه فرمت گزارش آهسته MySQL تجزیه کنید.

tcpdump
بسته های شبکه را بازرسی کنید و پروتکل مشتری MySQL را رمزگشایی کنید و کوئری ها را استخراج کنید
و پاسخ هایی از آن

pt-query-digest در واقع شبکه را تماشا نمی کند (یعنی "بو نمی کند".
بسته ها"). در عوض، فقط خروجی tcpdump را تجزیه می کند. شما مسئول هستید.
برای تولید این خروجی؛ pt-query-digest این کار را برای شما انجام نمی دهد. سپس شما ارسال کنید
این به pt-query-digest مانند هر فایل لاگ: به عنوان فایل در خط فرمان یا
به STDIN.

تجزیه کننده انتظار دارد که ورودی با گزینه های زیر قالب بندی شود: "-x -n -q
-tttt". برای مثال، اگر می خواهید خروجی را از دستگاه محلی خود بگیرید، شما
می تواند کاری شبیه به زیر انجام دهد (پورت باید آخرین بار در FreeBSD باشد):

tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 port 3306 \
> mysql.tcp.txt
pt-query-digest --type tcpdump mysql.tcp.txt

سایر پارامترهای tcpdump، مانند -s، -c، و - به شما بستگی دارد. فقط درست کن
مطمئن شوید که خروجی اینگونه به نظر می رسد (یک شکست خط در خط اول وجود دارد که باید از آن اجتناب کنید
مشکلات صفحه شخصی):

2009-04-12 09:50:16.804849 IP 127.0.0.1.42167
> 127.0.0.1.3306: tcp 37
0x0000: 4508 0059 6eb2 4000 4006 cde2 7f00 0001
0x0010: ....

به یاد داشته باشید که tcpdump یک گزینه -c مفید دارد که پس از گرفتن تعدادی از آن متوقف می شود
بسته ها! این برای آزمایش دستور tcpdump شما بسیار مفید است. توجه داشته باشید که tcpdump
نمی توان ترافیک سوکت یونیکس را ضبط کرد. خواندن
<http://bugs.mysql.com/bug.php?id=31577> اگر در این مورد سردرگم هستید.

Devananda Van Der Veen در بلاگ MySQL Performance نحوه عکسبرداری را توضیح داد
ترافیک بدون انداختن بسته ها روی سرورهای شلوغ بسته های حذف شده باعث pt-query-
خلاصه برای از دست دادن پاسخ به یک درخواست، سپس پاسخ به درخواست بعدی را ببینید
و زمان اجرای اشتباه را به کوئری اختصاص دهید. می توانید فیلتر را به
چیزی شبیه به زیر برای کمک به گرفتن زیرمجموعه ای از پرس و جوها. (دیدن
<http://www.mysqlperformanceblog.com/?p=6092> برای جزئیات.)

tcpdump -i any -s 65535 -x -n -q -tttt \
'پورت 3306 و tcp[1] & 7 == 2 و tcp[3] & 7 == 2'

تمام سرورهای MySQL که روی پورت 3306 اجرا می شوند به طور خودکار در tcpdump شناسایی می شوند
خروجی بنابراین، اگر tcpdump out حاوی بسته هایی از چندین سرور موجود باشد
پورت 3306 (به عنوان مثال، 10.0.0.1: 3306، 10.0.0.2: 3306، و غیره)، همه بسته ها/پرس و جوها
از همه این سرورها با هم تجزیه و تحلیل خواهند شد که گویی یک سرور هستند.

اگر در حال تجزیه و تحلیل ترافیک برای سرور MySQL هستید که روی پورت 3306 اجرا نمی شود،
به "--watch-server" مراجعه کنید.

همچنین توجه داشته باشید که pt-query-digest ممکن است در هنگام گزارش پایگاه داده برای پرس و جوها شکست بخورد
تجزیه خروجی tcpdump پایگاه داده فقط در اتصال اولیه کشف می شود
رویدادها برای یک مشتری جدید یا زمانی اجرا می شود. اگر خروجی tcpdump
حاوی هیچ یک از اینها نیست، پس pt-query-digest نمی تواند پایگاه داده را کشف کند.

بیانیه های آماده شده در سمت سرور پشتیبانی می شوند. ترافیک رمزگذاری شده با SSL نمی تواند باشد
بازرسی و رمزگشایی شد.

rawlog
گزارش‌های خام گزارش‌های MySQL نیستند، بلکه فایل‌های متنی ساده با یک دستور SQL در هر خط هستند.
پسندیدن:

c را از t WHERE id=1 انتخاب کنید
/* سلام دنیا! */ SELECT * FROM t2 LIMIT 1
درج در t (a, b) VALUES ('foo', 'bar')
INSERT INTO SELECT * از میمون ها

از آنجایی که لاگ های خام هیچ معیاری ندارند، بسیاری از گزینه ها و ویژگی های pt-query-
هضم با آنها کار نمی کند.

یکی از موارد استفاده برای گزارش های خام رتبه بندی پرس و جوها بر اساس تعداد زمانی است که تنها اطلاعات باشد
لیستی از پرس و جوها، از نظرسنجی "SHOW PROCESSLIST" موجود است.

--تا زمان
نوع: رشته

فقط جستارهای قدیمی‌تر از این مقدار را تجزیه کنید (پرسمان‌ها را تا این تاریخ تجزیه کنید).

این گزینه به شما این امکان را می دهد که پرس و جوهای جدیدتر از مقدار معین را نادیده بگیرید و فقط آن را تجزیه کنید
پرس و جوهایی که قدیمی تر از مقدار هستند. مقدار می تواند یکی از انواع مشابه باشد
فهرست شده برای "--از آنجا".

برخلاف "--از آنجایی"، "--تا" سختگیرانه نیست: همه پرس و جوها تجزیه می شوند تا زمانی که یکی از آنها یک
مهر زمانی که برابر یا بزرگتر از "--تا" است. سپس تمام پرس و جوهای بعدی هستند
نادیده گرفته شد

--کاربر
فرم کوتاه: -u; نوع: رشته

کاربر برای ورود اگر کاربر فعلی نیست.

--تغییرات
نوع: آرایه

تعداد تغییرات در مقادیر این ویژگی ها را گزارش کنید.

تغییرات نشان می دهد که یک ویژگی در یک کلاس چند مقدار متمایز دارد. معمول
مقدار این گزینه "arg" است که نشان می دهد چند پرس و جو مجزا در آن وجود دارد
کلاس این می تواند برای تعیین حافظه پنهان یک پرس و جو مفید باشد.

مقادیر متمایز توسط جمع‌های بررسی CRC32 مقادیر ویژگی‌ها تعیین می‌شوند. اینها
چک جمع ها در گزارش پرس و جو برای ویژگی های مشخص شده توسط این گزینه گزارش می شوند.
پسندیدن:

# arg crc 109 (1/25%), 144 (1/25%)... 2 مورد دیگر

در آن کلاس 4 پرس و جو مجزا وجود داشت. چک جمع های دو مورد اول
تغییرات نشان داده شده است، و هر یک یک بار (یا، 25٪ از زمان) رخ داده است.

تعداد تغییرات متمایز تقریبی است زیرا فقط 1,000 تنوع وجود دارد
ذخیره. مد (%) 1000 از مجموع کنترل کامل CRC32 ذخیره شده است، بنابراین مقداری متمایز است
چک جمع ها برابر تلقی می شوند.

- نسخه
نمایش نسخه و خروج

--[no]version-check
پیش فرض: بله

آخرین نسخه Percona Toolkit، MySQL و سایر برنامه ها را بررسی کنید.

این یک ویژگی استاندارد «بررسی خودکار به‌روزرسانی‌ها» با دو ویژگی دیگر است
امکانات. ابتدا این ابزار نسخه سایر برنامه ها را در سیستم محلی بررسی می کند
علاوه بر نسخه خودش به عنوان مثال، نسخه هر سرور MySQL را بررسی می کند
به Perl و ماژول Perl DBD::mysql متصل می شود. دوم اینکه بررسی می کند و هشدار می دهد
در مورد نسخه هایی با مشکلات شناخته شده به عنوان مثال، MySQL 5.5.25 یک باگ بحرانی داشت و
به عنوان 5.5.25a دوباره منتشر شد.

هر گونه به روز رسانی یا مشکل شناخته شده قبل از خروجی عادی ابزار در STDOUT چاپ می شود.
این ویژگی هرگز نباید در عملکرد عادی ابزار اختلال ایجاد کند.

برای اطلاعات بیشتر مراجعه کنید .

---ساعت-سرور
نوع: رشته

این گزینه به pt-query-digest می گوید که کدام آدرس IP سرور و پورت (مانند
"10.0.0.1:3306") برای تماشا هنگام تجزیه tcpdump (برای "--type" tcpdump). همه دیگر
سرورها نادیده گرفته می شوند اگر آن را مشخص نکنید، pt-query-digest تمام سرورها را تماشا می کند
به دنبال هر آدرس IP با استفاده از پورت 3306 یا "mysql" هستید. اگر در حال تماشای یک سرور هستید
با یک پورت غیر استاندارد، این کار نمی کند، بنابراین باید آدرس IP و پورت را مشخص کنید
به تماشای.

اگر می خواهید ترکیبی از سرورها را تماشا کنید، برخی از آنها روی پورت استاندارد 3306 و برخی دیگر اجرا می شوند
در حال اجرا بر روی پورت های غیر استاندارد، باید خروجی های tcpdump جداگانه برای آن ایجاد کنید
سرورهای پورت غیر استاندارد و سپس برای هر کدام این گزینه را مشخص کنید. در حال حاضر pt-query-
digest نمی تواند سرورهای پورت 3306 را به صورت خودکار شناسایی کند و همچنین به او گفته می شود که سرور را در a تماشا کنید
پورت غیر استاندارد

DSN OPTIONS


این گزینه های DSN برای ایجاد یک DSN استفاده می شود. هر گزینه مانند "option=value" داده می شود.
گزینه ها به حروف بزرگ و کوچک حساس هستند، بنابراین P و p یک گزینه نیستند. نمی تواند وجود داشته باشد
فضای خالی قبل یا بعد از "="" و اگر مقدار دارای فضای خالی باشد باید نقل قول شود.
گزینه های DSN با کاما از هم جدا شده اند. برای جزئیات کامل به صفحه مدیریت percona-toolkit مراجعه کنید.

· آ

dsn: charset; کپی: بله

مجموعه کاراکترهای پیش فرض

· د

dsn: پایگاه داده; کپی: بله

پایگاه داده پیش فرض برای استفاده هنگام اتصال به MySQL.

· اف

dsn: mysql_read_default_file; کپی: بله

فقط گزینه های پیش فرض را از فایل داده شده بخوانید.

· ساعت

dsn: میزبان; کپی: بله

به هاست متصل شوید.

· پ

dsn: رمز عبور; کپی: بله

رمز عبور برای استفاده در هنگام اتصال. اگر رمز عبور حاوی کاما باشد، باید از آنها فرار کرد
با علامت معکوس: "exam\,ple"

· پ

dsn: پورت; کپی: بله

شماره پورت برای استفاده برای اتصال.

· س

dsn: mysql_socket; کپی: بله

فایل سوکت برای استفاده برای اتصال.

· تی

جدول "--review" یا "--history".

· تو

dsn: user; کپی: بله

کاربر برای ورود اگر کاربر فعلی نیست.

محیط زیست


متغیر محیطی "PTDEBUG" خروجی اشکال زدایی کامل را در STDERR فعال می کند. برای فعال کردن
اشکال زدایی و ضبط تمام خروجی ها در یک فایل، ابزار را مانند:

PTDEBUG=1 pt-query-digest ... > FILE 2>&1

مراقب باشید: خروجی اشکال زدایی حجیم است و می تواند چندین مگابایت خروجی تولید کند.

SYSTEM الزامات


شما به Perl، DBI، DBD::mysql و برخی از بسته های اصلی نیاز دارید که باید در هر کدام از آنها نصب شوند.
نسخه نسبتاً جدید پرل.

با استفاده از خدمات onworks.net از pt-query-digestp به صورت آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad




×
تبلیغات
❤️اینجا خرید کنید، رزرو کنید یا بخرید - رایگان است، به رایگان ماندن خدمات کمک می‌کند.