محتويات الدورة

SQL Server / المتقدم / الدرس 13

Query Store وتحليل الأداء

حلل تراجع الأداء بالتاريخ وأثر العمل والمقارنات المضبوطة، وافهم حالة Query Store وحساسية المعلمات وحدود فرض الخطة.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • قراءة إعداد Query Store ومقاييس الفترات.
  • ترتيب الأولوية بكلفة العمل لا عينة بطيئة واحدة.
  • تحديد متطلبات ميزات SQL Server 2022 بدقة.

عرّف التراجع القابل للقياس

التراجع تدهور ذو معنى قياساً بخط أساس قابل للمقارنة، لا تنفيذ بدا بطيئاً فقط. سجّل هوية الاستعلام وفئة المعلمة والفترة والتكرار وتوزيع التأخر والمعالج والقراءات والانتظار. تحقق هل يتأثر الجميع أو مستأجر كثيف البيانات. قد تقل أهمية استعلام عشر ثوانٍ كل ساعة عن استعلام خمسين ميلي ثانية آلاف المرات بالدقيقة.

افصل تأخر التطبيق عن زمن القاعدة. قد يهيمن انتظار الاتصال والنقل واستهلاك النتائج والتسلسل رغم ثبات الخطة. قارن عملاً وأحجام نتائج متكافئة. حدد معيار النجاح قبل تغيير الفهارس أو التلميحات، واحتفظ بدليل يكفي لعكس تدخل يفيد فئة معلمات ويضر أخرى.

افحص Query Store قبل اعتماد تاريخه

يحفظ Query Store تاريخ الاستعلامات والخطط والتنفيذ داخل القاعدة. ظهر في SQL Server 2016 ويتاح في أساس 2019. يبدأ تمكينه افتراضياً للقواعد المنشأة حديثاً من SQL Server 2022؛ وقد تحتفظ القواعد المرقاة أو المستعادة بإعداداتها السابقة. افحص الحالة الفعلية دائماً ولا تستنتجها من الإصدار.

لا يضمن طلب READ_WRITE أن الالتقاط قابل للكتابة حالياً. قد تجعله حدود التخزين أو ظروف أخرى READ_ONLY. راجع سياسة الالتقاط والاحتفاظ والحجم الأقصى وreadonly_reason. ليس Query Store سجل تدقيق بلا حد ولا يضمن حفظ كل تنفيذ للأبد. تدخل كلفته ودورة بياناته ضمن التصميم التشغيلي.

sql قراءة حالة تشغيل Query Store
SELECT desired_state_desc,actual_state_desc,readonly_reason,
 current_storage_size_mb,max_storage_size_mb,query_capture_mode_desc
FROM sys.database_query_store_options;

تصف القيم القاعدة الحالية؛ ويجب تفسير التاريخ المحدود أو الغائب قبل مقارنة الفترات.

قارن مقاييس الفترات بصورة صحيحة

تجمع إحصاءات التنفيذ عمليات داخل فترات وخطط. زِن المتوسط بعدد التنفيذات عند دمج المجموعات؛ فمتوسط المتوسطات مباشرة قد يحرف كلفة العمل. افصل التنفيذات الملغاة والاستثنائية أو استبعدها حسب السؤال. يوضح الاستعلام ترتيب الخطط بالمدة المتراكمة ويحتفظ بإحصاءات التنفيذ العادي المكتمل، مع تحويل الميكروثواني إلى ميلي ثوانٍ.

لا يحدد مجموع الخطة وحده عملية عمل أو سبباً جذرياً. اربط بعروض الاستعلام والنص بصلاحيات مناسبة وحدد فترات متكافئة واربط تغير الخطة بالسلوك المقاس. لا تنشر نصاً ملتقطاً يتضمن قيماً حساسة. ينبغي أن تضيق الأدلة فرضية، لا أن تستبدل تحليل الخطة الفعلية والعمل.

sql ترتيب الخطط بكلفة المدة المجمعة
SELECT TOP (10) plan_id,
 SUM(count_executions) AS executions,
 SUM(avg_duration*count_executions)/1000.0 AS total_duration_ms
FROM sys.query_store_runtime_stats
WHERE execution_type=0
GROUP BY plan_id
ORDER BY total_duration_ms DESC,plan_id;

يجمع زمن التنفيذ لا إشغال الساعة، وقد تتداخل التنفيذات؛ وتحتاج المقارنة الفعلية تحديد فترات متكافئة.

تعرّف التفاوت والمساعدة المرتبطة بالإصدار

تظهر حساسية المعلمات عندما لا تناسب خطة واحدة توزيعات مختلفة كثيراً. أعد حالات المعلمات الصغيرة والكبيرة ببيانات ممثلة. افحص الإحصاءات ومسارات الوصول وتقدير الصفوف ومنح الذاكرة والانسكاب. تظل المعلمات ضرورية للأمان؛ وليس استبدالها بدمج النصوص استراتيجية ضبط مسؤولة.

قدم SQL Server 2022 تحسين Parameter Sensitive Plan عند مستوى التوافق 160 لعبارات مؤهلة. يمكنه الاحتفاظ ببدائل بدلاً من خطة واحدة، لكنه لا يضمن تأهل كل استعلام أو نمط تفاوت. لا يحصل SQL Server 2019 عليه لمجرد حداثة أداة العميل. تحقق من المحرك والتوافق وإعدادات الميزة.

استخدم فرض الخطة كتدخل مراقب

قد تثبت خطة معروفة الجودة تراجعاً مؤقتاً أثناء تحليل السبب. فرض الخطة تدخل بشروط تأهل وفشل، وليس إثباتاً دائماً للمثالية. تتبع إخفاق الفرض وقارن فئات المعلمات وحدد مالكاً وموعد مراجعة. قد تجعل تغييرات المخطط والعمل الخطة القديمة غير مناسبة.

فضّل أصغر تغيير مدعوم بالدليل وتحقق من صحة النتائج وقارن التأخر والموارد بعد النشر. احتفظ بمسار رجوع لتغيير الفهرس أو التلميح أو التوافق. يجب أن يوضح سجل الضبط ما قيس ولماذا ناسبت الفرضية وما قد ينقضها. تفيد الرسوم التاريخية فقط مع وضوح افتراضات الالتقاط والمقارنة.

الأخطاء الشائعة وإصلاحها

Query Store history stopped growing.

لماذا يحدث؟
أصبحت الحالة للقراءة أو استبعدت السياسة العمل.
كيف تصلحه؟
افحص الحالة والسبب والحجم والسياسة قبل تغيير معتمد.
كيف تتجنب تكراره؟
راقب صحة الالتقاط.

Averaged averages misranked workload.

لماذا يحدث؟
أُعطيت مجموعات مختلفة العدد وزناً متساوياً.
كيف تصلحه؟
استخدم مجاميع أو متوسطات موزونة بعدد التنفيذات.
كيف تتجنب تكراره؟
حدد الوحدات والأوزان.

PSP was expected on SQL Server 2019.

لماذا يحدث؟
استنتجت المتطلبات من حداثة الأداة.
كيف تصلحه؟
تحقق من متطلبات SQL Server 2022 والتوافق 160.
كيف تتجنب تكراره؟
سجل حدود الإصدار مع كل اقتراح ضبط.

اختبر فهمك

1. متوسط خطة 10 ميلي ثانية لألف تنفيذ وأخرى 1000 لتنفيذ واحد. أيهما استهلك مدة أكثر؟

اعرض الحل المشروح

جمعت الأولى 10000 مقابل 1000 ميلي ثانية. يدعم ذلك ترتيب كلفة العمل، مع بقاء أهمية التأخر الحاد وحرجية العمل أسباباً لفحص الثانية.

2. Query Store متوقف بعد ترقية المحرك. هل يخالف افتراضي 2022؟

اعرض الحل المشروح

لا؛ ينطبق الافتراضي الموثق على القواعد الجديدة. قد تحتفظ القواعد المرقاة والمستعادة بإعداداتها. افحصها وخطط لأي تمكين معتمد صراحة.

أهم ما تعلمته

  • تحتاج ادعاءات الأداء أدلة عمل متكافئة.
  • تسبق صحة الالتقاط المقارنة التاريخية.
  • لـ PSP والإعدادات الافتراضية حدود إصدار صريحة.

المراجع الرسمية