استكشاف Query Store
SQL Server Query Store هو ميزة لكل قاعدة بيانات تسجل تلقائيا محفوظات الاستعلامات والخطط وإحصائيات وقت التشغيل، ما يبسط استكشاف أخطاء الأداء وإصلاحها وضبط الاستعلام. كما يوفر رؤى حول أنماط استخدام قاعدة البيانات واستهلاك الموارد.
يتكون Query Store من ثلاثة متاجر:
- مخزن الخطة: يخزن معلومات خطة التنفيذ المقدرة.
- مخزن إحصائيات وقت التشغيل: يخزن معلومات إحصائيات التنفيذ.
- مخزن إحصائيات الانتظار: يستمر في الحصول على معلومات إحصائيات الانتظار.
تمكين مخزن الاستعلام
يتم تمكين Query Store افتراضياً في قواعد بيانات Azure SQL. إذا كنت تريد استخدامه مع SQL Server وAzure Synapse Analytics، فأنت بحاجة إلى تمكينه أولاً. لتمكين ميزة Query Store، استخدم الاستعلام التالي الصالح لبيئتك:
-- SQL Server
ALTER DATABASE <database_name> SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE);
-- Azure Synapse Analytics
ALTER DATABASE <database_name> SET QUERY_STORE = ON;
كيف يجمع Query Store البيانات
يتكامل Query Store مع مسار معالجة الاستعلام في مراحل متعددة. عند كل نقطة تكامل، يتم جمع البيانات في الذاكرة وكتابتها على القرص بشكل غير متزامن لتقليل حمل الإدخال/إخراج. نقاط التكامل هي كما يلي:
عند تنفيذ استعلام للمرة الأولى، يتم إرسال نص الاستعلام وخطة التنفيذ الأولية المقدرة إلى مخزن الاستعلام واستمرارها.
يتم تحديث الخطة في Query Store عند إعادة تحويل الاستعلام برمجيا. إذا نتج عن عملية إعادة التحويل البرمجي خطة تنفيذ تم إنشاؤها حديثاً، فإنها تستمر أيضاً في Query Store لزيادة الخطط السابقة. بالإضافة إلى ذلك، يتعقب Query Store إحصائيات التنفيذ لكل خطة استعلام لأغراض المقارنة.
أثناء التجميع والتحقق من مراحل إعادة الترجمة، يحدد Query Store ما إذا كانت هناك خطة مفروضة للاستعلام ليتم تنفيذها. تتم إعادة ترجمة الاستعلام إذا كان Query Store يوفر خطة مفروضة تختلف عن الخطة الموجودة في ذاكرة التخزين المؤقت للإجراء.
عند تنفيذ استعلام، تستمر إحصائيات وقت التشغيل الخاصة به في مخزن الاستعلام. يقوم Query Store بتجميع هذه البيانات لضمان تمثيل دقيق لكل خطة استعلام.
لمعرفة المزيد حول كيفية جمع Query Store للبيانات، راجع كيف يجمع Query Store البيانات.
السيناريوهات الشائعة
يوفر SQL Server Query Store رؤى قيمة حول أداء عمليات قاعدة البيانات. تتضمن السيناريوهات الشائعة ما يلي:
- تحديد وإصلاح تراجعات الأداء بسبب تحديد خطة تنفيذ الاستعلام الأدنى.
- تحديد وضبط أعلى استعلامات استهلاك الموارد.
- اختبار A/B لتقييم تأثيرات تغييرات قاعدة البيانات والتطبيق.
- ضمان استقرار الأداء بعد ترقيات SQL Server.
- تحديد الاستعلامات الأكثر استخداما.
- تدقيق محفوظات خطط الاستعلام لاستعلام.
- تحديد وتحسين أحمال العمل غير المخطط لها.
- فهم فئات الانتظار السائدة في قاعدة البيانات والاستعلامات والخطط المساهمة التي تؤثر على أوقات الانتظار.
- تحليل أنماط استخدام قاعدة البيانات بمرور الوقت من حيث استهلاك الموارد (وحدة المعالجة المركزية، الإدخال/الإخراج، الذاكرة).
اكتشاف طرق عرض Query Store
بمجرد تمكين Query Store في قاعدة بيانات، يصبح مجلد Query Store مرئياً لقاعدة البيانات في مستكشف عناصر SQL Server. بالنسبة إلى Azure Synapse Analytics، يتم عرض طرق عرض متجر الاستعلام ضمن طرق عرض النظام. توفر عروض Query Store رؤى مجمعة وسريعة حول جوانب أداء قاعدة بيانات SQL Server.
الاستعلامات التي تم التراجع عنها
يواجه الاستعلام المتراجع تدهور الأداء بمرور الوقت بسبب تغييرات خطة التنفيذ. يمكن أن تتغير خطط التنفيذ المقدرة بسبب عوامل مختلفة، بما في ذلك تغييرات المخطط وتغييرات الإحصائيات وتغييرات الفهرس. قد يكون التحقيق في ذاكرة التخزين المؤقت للإجراءات هو الغريزة الأولى، ولكنه يخزن فقط أحدث خطة تنفيذ للاستعلام، ويمكن إخلاء الخطط بناء على متطلبات ذاكرة النظام. ومع ذلك، يستمر Query Store في خطط تنفيذ متعددة لكل استعلام، ما يسمح بالمرونة في اختيار خطة معينة من خلال فرض خطة لمعالجة تراجع أداء الاستعلام بسبب تغييرات الخطة.
يمكن لعرض استعلامات التراجع تحديد الاستعلامات التي تتراجع مقاييس تنفيذها بسبب تغييرات خطة التنفيذ خلال إطار زمني محدد. تسمح طريقة العرض هذه بالتصفية استنادا إلى مقياس محدد (مثل المدة ووقت وحدة المعالجة المركزية وعدد الصفوف والمزيد) وإحصاء (الإجمالي أو المتوسط أو الحد الأدنى أو الحد الأقصى أو الانحراف المعياري). ثم يسرد أهم 25 استعلارا متراجعا استنادا إلى عامل التصفية المتوفر. بشكل افتراضي، يتم عرض عرض مخطط شريطي رسومي للاستعلامات، ولكن يمكنك اختياريا عرض الاستعلامات بتنسيق شبكة.
بعد تحديد استعلام من جزء الاستعلام العلوي الأيسر، يعرض جزء ملخص الخطة خطط الاستعلام المستمرة المقترنة بالاستعلام بمرور الوقت. يؤدي تحديد خطة استعلام في جزء ملخص الخطة إلى عرض خطة استعلام رسومية في الجزء السفلي. تسمح لك أزرار شريط الأدوات في كل من جزء ملخص الخطة وجزء خطة الاستعلام الرسومي بفرض الخطة المحددة للاستعلام المحدد. يتم استخدام بنية هذا الجزء وسلوكه باستمرار عبر جميع طرق عرض استعلام SQL.
بدلاً من ذلك، يمكنك استخدام الإجراء sp_query_store_force_plan المخزن لاستخدام فرض الخطة.
EXEC sp_query_store_force_plan @query_id=73, @plan_id=79
استهلاك الموارد الإجمالية
تسمح طريقة العرض الاستهلاك الكلي للموارد بتحليل إجمالي استهلاك الموارد لمقاييس تنفيذ متعددة (مثل عدد التنفيذ والمدة ووقت الانتظار والمزيد) لإطار زمني محدد. الرسوم البيانية المعروضة تفاعلية؛ عند تحديد مقياس من أحد المخططات، يتم عرض طريقة عرض تنقل تعرض الاستعلامات المرتبطة بالمقياس المختار في علامة تبويب جديدة.
يوفر عرض التفاصيل أهم 25 استعلاماً عن مستهلك الموارد التي ساهمت في المقياس الذي تم تحديده. تستخدم طريقة عرض التفاصيل هذه الواجهة المتسقة التي تسمح بفحص الاستعلامات المقترنة وتفاصيلها، وتقييم خطط الاستعلام المقدرة المحفوظة، واستخدام فرض التخطيط اختيارياً لتحسين الأداء. تعتبر طريقة العرض هذه ذات قيمة عندما يصبح التنازع على موارد النظام مشكلة، مثل عندما يصل استخدام وحدة المعالجة المركزية إلى السعة.
استعلامات استهلاك أعلى الموارد
طريقة العرض أهم استعلامات استهلاك الموارد تشبه طريقة عرض التفاصيل في طريقة العرض "الاستهلاك الكلي للموارد". كما يسمح باختيار مقياس وإحصاء كعامل تصفية. ومع ذلك، فإن الاستعلامات التي تعرضها هي أهم 25 استعلاماً مؤثراً بناءً على عامل التصفية والإطار الزمني المختارين.
توفر طريقة عرض أهم استعلامات استهلاك الموارد الإشارة الأولى إلى الطبيعة غير المخطط لها لحمل العمل عند تحديد أحمال العمل غير المخطط لها وتحسينها. على سبيل المثال، في الصورة التالية، تم تحديد مقياس Execution Count وإحصاء Total للكشف عن أن ما يقرب من 90% من الاستعلامات الأكثر استهلاكاً للموارد يتم تنفيذها مرة واحدة فقط.
استعلامات مع خطط إجبارية
توفر طريقة العرض Queries With Forced Plans نظرة سريعة على الاستعلامات التي فرضت خطط الاستعلام. تصبح طريقة العرض هذه ذات صلة إذا لم تعد الخطة المفروضة تعمل كما هو متوقع وتحتاج إلى إعادة التقييم. توفر طريقة العرض هذه القدرة على مراجعة جميع خطط التنفيذ المقدرة المستمرة لاستعلام محدد بسهولة لتحديد ما إذا كانت خطة أخرى الآن مناسبة بشكل أفضل للأداء. إذا كان الأمر كذلك، فإن أزرار شريط الأدوات متاحة لفك خطة كما هو مطلوب.
الاستعلامات ذات التغير (التباين) العالي
يمكن أن يختلف أداء الاستعلام بين عمليات التنفيذ. تحتوي طريقة العرض طلبات البحث ذات التغير (التباين) العالي على تحليل لطلبات البحث التي لها أعلى تغير (تباين) أو انحراف معياري لمقياس محدد. تتوافق الواجهة مع معظم طرق عرض Query Store ما يسمح بفحص تفاصيل الاستعلام وتقييم خطة التنفيذ وفرض خطة محددة اختيارياً. استخدم طريقة العرض هذه لضبط الاستعلامات غير المتوقعة في نمط أداء أكثر اتساقاً.
الاستعلام عن إحصائيات الانتظار
تحلل طريقة العرض إحصائيات انتظار الاستعلام فئات الانتظار الأكثر نشاطاً لقاعدة البيانات وتعرض مخططاً بيانياً. هذا المخطط البياني تفاعلي. يؤدي تحديد فئة الانتظار إلى التنقل في تفاصيل الاستعلامات التي تساهم في إحصائية وقت الانتظار.
تتوافق واجهة عرض التفاصيل أيضاً مع معظم طرق عرض متجر الاستعلام ما يسمح بفحص تفاصيل الاستعلام وتقييم خطة التنفيذ وفرض خطة محددة اختيارياً. تساعد طريقة العرض هذه في تحديد الاستعلامات التي تؤثر على تجربة المستخدم عبر التطبيقات.
استعلام التتبع
يسمح عرض تتبع الاستعلام بتحليل استعلام معين بناءً على قيمة معرّف طلب البحث الذي تم إدخاله. بمجرد التشغيل، يوفر العرض محفوظات التنفيذ الكامل للاستعلام. تشير علامة الاختيار على التنفيذ إلى أنه تم استخدام خطة إجبارية. يمكن أن توفر طريقة العرض هذه نظرة ثاقبة على الاستعلامات مثل تلك التي تحتوي على خطط مفروضة للتحقق من أن أداء الاستعلام لا يزال مستقراً.
ينتظر استخدام Query Store للعثور على الاستعلام
عندما يبدأ أداء النظام في التدهور، فمن المنطقي الرجوع إلى إحصائيات انتظار الاستعلام لتحديد السبب المحتمل. بالإضافة إلى تحديد الاستعلامات التي تحتاج إلى ضبط، يمكن أيضا أن تلقي الضوء على ترقيات البنية الأساسية المحتملة التي قد تكون مفيدة.
يوفر متجر استعلام SQL عرض إحصائيات انتظار الاستعلام لتوفير نظرة ثاقبة لفئات الانتظار الأعلى لقاعدة البيانات. يوجد حالياً 23 فئة انتظار.
يعرض مخطط الشريط فئات الانتظار الأكثر تأثيراً لقاعدة البيانات عند فتح طريقة عرض إحصائيات انتظار الاستعلام. بالإضافة إلى ذلك، يسمح عامل التصفية الموجود في شريط الأدوات في جزء فئات الانتظار بحساب إحصائيات الانتظار بناءً على إجمالي وقت الانتظار (افتراضي) أو متوسط وقت الانتظار أو الحد الأدنى لوقت الانتظار أو الحد الأقصى لوقت الانتظار أو وقت انتظار الانحراف المعياري.
يؤدي تحديد فئة انتظار إلى التنقل وصولا إلى تفاصيل الاستعلامات التي تساهم في فئة الانتظار هذه. من وجهة النظر هذه، لديك القدرة على التحقيق في الاستعلامات الفردية الأكثر تأثيراً. يمكنك الوصول إلى عرض خطط التنفيذ المقدرة المستمرة في جزء ملخص الخطة عن طريق تحديد استعلام في جزء الاستعلام. يؤدي تحديد خطة استعلام من جزء ملخص الخطة إلى عرض خطة الاستعلام الرسومية في الجزء السفلي. من طريقة العرض هذه، لديك القدرة على فرض خطة استعلام أو إلغاء فرضها للاستعلام لتحسين الأداء.
تصحيح الخطة التلقائي
قدم SQL Server 2017 وقاعدة بيانات Azure SQL مفهوم تصحيح الخطة التلقائي من خلال تحليل البيانات في مخزن الاستعلام. فعندما يتم تمكين مخزن الاستعلام مع قاعدة البيانات في 2017 SQL Server (أو أحدث) وفي قاعدة بيانات Azure SQL، يقوم مشغل SQL Server بالنظر في تراجعات خطة الاستعلام وتوفير توصيات. يمكنك مشاهدة هذه التوصيات في طريقة عرض الإدارة الديناميكية sys.dm_db_tuning_recommendations (DMV). وتتضمن هذه التوصيات كشوف T-SQL لتقوم بفرض خطة استعلام يدويًا عندما كان الأداء في حالة جيدة.
إذا كنت تكتسب الثقة في هذه التوصيات، فإنه يمكنك القيام بتمكين SQL Server لفرض الخطط تلقائيًا عند مواجهة التراجعات. تمكين التصحيح التلقائي للخطة ALTER DATABASE باستخدام AUTOMATIC_TUNING والوسيطة.
وبالنسبة إلى قاعدة بيانات Azure SQL، فإنه يمكنك أيضًا تمكين تصحيح الخطة التلقائي من خلال خيارات الضبط التلقائي في مدخل Microsoft Azure أو واجهات برمجة تطبيقات REST. يتم تمكين توصيات تصحيح الخطة التلقائي دومًا لأي قاعدة بيانات حيث يتم تمكين مخزن الاستعلام (وهو الافتراضي لقاعدة بيانات Azure SQL ومثيل Azure SQL المُدار). بالنسبة لقواعد البيانات الجديدة، يتم تمكين التصحيح التلقائي للخطة (FORCE_PLAN) بشكل افتراضي لقاعدة بيانات Azure SQL.