سجلات الاستعلام البطيئة في قاعدة بيانات Azure ل MySQL - خادم مرن
ينطبق على: قاعدة بيانات Azure لـMySQL - خادم مرن
في خادم Azure Database for MySQL المرن، يتوفر سجل الاستعلام البطيء للمستخدمين للتكوين والوصول. يتم تعطيل سجلات الاستعلام البطيئة بشكل افتراضي ويمكن تمكينها للمساعدة في تحديد اختناقات الأداء أثناء استكشاف الأخطاء وإصلاحها.
لمزيد من المعلومات حول سجل الاستعلام البطيء في MySQL، راجع قسم سجل الاستعلام البطيء في وثائق محرك MySQL.
تكوين تـسجيل الاستعلام البطيء
كما يتم تعطيل سجل الاستعلام البطيء بشكل افتراضي. لتمكين تسجيل التدقيق، عين slow_query_log
معلمة خادم إلى ON. يمكن تكوين هذا باستخدام مدخل Azure أو Azure CLI.
تتضمن المعلمات الأخرى التي يمكنك ضبطها للتحكم في سلوك تسجيل الاستعلام البطيء ما يلي:
- long_query_time: تسجيل استعلام إذا استغرق إكماله وقتا أطول من
long_query_time
(بالثواني). المهلة الافتراضية هي 10 ثواني. تنطبق معلمةlong_query_time
الخادم بشكل عام على جميع الاتصالات المنشأة حديثا في MySQL. ومع ذلك، فإنه لا يؤثر على مؤشرات الترابط المتصلة بالفعل. يوصى بإعادة الاتصال بقاعدة بيانات Azure لخادم MySQL المرن من التطبيق، أو ستساعد إعادة تشغيل الخادم في مسح مؤشرات الترابط ذات القيم القديمة من "long_query_time" وتطبيق قيمة المعلمة المحدثة. - log_slow_admin_statements: يحدد ما إذا كانت البيانات الإدارية (على سبيل المثال
ALTER_TABLE
،ANALYZE_TABLE
) مسجلة. - log_queries_not_using_indexes: يحدد ما إذا تم تسجيل الاستعلامات التي لا تستخدم الفهارس.
- log_throttle_queries_not_using_indexes: تُحدد عدد الاستعلامات غير الفهرسة التي يمكن كتابتها في سجل الاستعلام البطيء. هذه المعلمة نافذ المفعول عند
log_queries_not_using_indexes
تعيين إلى ON
هام
إذا لم تتم فهرسة الجداول الخاصة بك، فقد يؤثر تعيين log_queries_not_using_indexes
المعلمتين وlog_throttle_queries_not_using_indexes
على ONعلى أداء MySQL نظرا لأن جميع الاستعلامات التي تعمل مُقابل هذه الجداول غير المفهرسة ستتم كتابتها إلى سجل الاستعلام البطيء.
راجع وثائق سجل الاستعلام البطيء MySQL للحُصول على الأوصاف الكاملة لمعلمات سجل الاستعلام البطيئة.
الوصول إلى سِجلات الاستعلام البطيئة
يتم دمج سجلات الاستعلام البطيئة مع إعدادات تشخيص Azure Monitor. بمجرد تمكين سجلات الاستعلام البطيئة على مثيل خادم Azure Database for MySQL المرن، يمكنك إرسالها إلى سجلات Azure Monitor أو مراكز الأحداث أو Azure Storage. لمعرفة المزيد حول إعدادات التشخيص، راجع وثائق سجلات التشخيص. لمعرفة المزيد حول كيفية تمكين إعدادات التشخيص في مدخل Microsoft Azure، راجع مقالة مدخل سجل الاستعلام البطيء.
إشعار
حسابات التخزين Premium غير مَدعومة إذا قمت بإرسال السجلات إلى تخزين Azure عبر التشخيصات والإعدادات
يصف الجدول التالي إخراج سجل الاستعلام البطيء. اعتمادا على أسلوب الإخراج، قد تختلف الحقول المضمنة وترتيب ظهورها.
الخاصية | الوصف |
---|---|
TenantId |
معرف المستأجر |
SourceSystem |
Azure |
TimeGenerated [توقيت عالمي متفق عليه] |
الطابع الزمني عندما تم تسجيل السجل في UTC |
Type |
نوع الـسجل. دائم AzureDiagnostics |
SubscriptionId |
معرّف فريد للاشتراك الذي ينتمي إليه الخادم |
ResourceGroup |
اسم مجموعة الموارد التي ينتمي إليها الخادم |
ResourceProvider |
اسم موفر المورد. دائم MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
URI للمورد |
Resource |
اسم الـخادم |
Category |
MySqlSlowLogs |
OperationName |
LogEvent |
Logical_server_name_s |
اسم الـخادم |
start_time_t [توقيت عالمي متفق عليه] |
الوقت الذي بدأ فيه الاستعلام |
query_time_s |
إجمالي الوقت بالثواني التي استغرقها الاستعلام لتنفيذها |
lock_time_s |
إجمالي الوقت بالثواني التي تم فيها تأمين الاستعلام |
user_host_s |
اسم مستخدم |
rows_sent_s |
عَدد الصفوف المرسلة |
rows_examined_s |
عدد الصُفوف التي تم فحصها |
last_insert_id_s |
last_insert_id |
insert_id_s |
إدراج معرّف |
sql_text_s |
الاستعلام الكـامل |
server_id_s |
معرّف الخادم |
thread_id_s |
معرّف مؤشر الترابط |
\_ResourceId |
URI للمورد |
إشعار
بالنسبة إلى sql_text_s
، سوف يتم اقتطاع السجل إذا تجاوز 2048 حرفا.
تحليل السجلات في Azure Monitor Logs
بمُجرد أن يتم توصيل سجلات الاستعلام البطيئة إلى سجلات مراقبة Azure من خلال سجلات التشخيص، يُمكنك إجراء مزيد من التحليل للاستعلامات البطيئة. فيما يلي بعض الاستعلامات النموذجية لمساعدتك على البدء. تأكد من التحديث أدناه باسم الخادم الخاص بك.
استعلامات أطول من 10 ثواني على خادم معين
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
سرد أكبر 5 استعلامات أطول على خادم مُعين
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | order by query_time_d desc | take 5
تلخيص الاستعلامات البطيئة حَسب الحد الأدنى والحد الأقصى والمتوسط ووقت استعلام الانحراف المعياري على خادم معين
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by Resource
الرسم البياني لتوزيع الاستعلام البطيء على خادم معين
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | summarize count() by Resource , bin(TimeGenerated, 5m) | render timechart
عرض الاستعلامات التي تزيد عن 10 ثوان عبر جميع مثيلات خادم Azure Database for MySQL المرن مع تمكين سجلات التشخيص
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
الخطوات التالية
- تعرف على المزيد حول سجلات التدقيق
- تفاصيل أداء الاستعلام