رؤية أداء الاستعلام لـAzure SQL Database

ينطبق على: قاعدة بيانات Azure SQL

يوفر Query Performance Insight تحليل استعلام ذكي لقواعد البيانات الفردية والمجمعة. يساعد في تحديد الاستعلامات الأكثر استهلاكاً للموارد والمستمرة لفترة طويلة في حمولة العمل الخاص بك. ما يساعدك في العثور على الاستعلامات لتحسين الأداء الكلي لحمولات العمل، واستخدام المورد الذي تدفع مقابله بكفاءة. تساعدك أداة Query Performance Insight على تقليل وقت استكشاف أخطاء أداء قاعدة البيانات وإصلاحها من خلال توفير:

  • نظرة أعمق على استهلاك موارد قواعد البيانات (DTU)
  • تفاصيل حول أهم استعلامات قاعدة البيانات حسب وحدة المعالجة المركزية والمدة وعدد التنفيذ (الضبط المحتمل للمرشحين لتحسين الأداء)
  • القدرة على التعمق في تفاصيل الاستعلام، لعرض نص الاستعلام ومحفوظات استخدام الموارد
  • التعليقات التوضيحية التي تعرض توصيات الأداء من مستشاري قاعدة البيانات

Query Performance Insight

المتطلبات الأساسية

تتطلب مؤشرات أداء الاستعلام أن يكون مخزن الاستعلام نشطاً في قاعدة البيانات الخاصة بك. يُمكَّن تلقائياً من جميع قواعد البيانات في Azure SQL Database افتراضياً. إذا لم يكن Query Store قيد التشغيل، فستطالبك مدخل Microsoft Azure بتمكينه.

ملاحظة

إذا ظهرت رسالة "Query Store لم يُكون بشكل صحيح في هذه القاعدة للبيانات" في البوابة الإلكترونية، فراجع تحسين تكوين Query Store.

الأذونات

تحتاج إلى أذونات التحكم في الوصول المستند إلى الأدوار (Azure RBAC) التالية لاستخدام Query Performance Insight:

  • يلزم الحصول على أذوناتReaderأو مالكأو مساهمأو SQL DB Contributorأو SQL Server Contributor لعرض أهم الاستعلامات والرسوم البيانية التي تستهلك الموارد.
  • يلزم توفر أذوناتالمالكأو المساهمأو SQL DB Contributorأو SQL Server Contributor لعرض نص الاستعلام.

استخدم رؤية أداء الاستعلام

الاستعلام عن أداء الاستعلام سهل الاستخدام:

  1. افتح مدخل Microsoft Azure وابحث عن قاعدة البيانات المراد فحصها.

  2. من القائمة على الجانب الأيمن، افتح الأداء الذكي>رؤية أداء الاستعلام.

    Query Performance Insight on the menu

  3. في علامة التبويب الأولى، راجع قائمة أهم الاستعلامات المستهلكة للموارد.

  4. حدد استعلام فردي لعرض تفاصيله.

  5. افتح Intelligent Performance>Performance recommendations وتحقق من توفر أي توصيات للأداء. لمزيد من المعلومات حول توصيات الأداء المضمنة، راجع Azure SQL Database Advisor.

  6. استخدم أشرطة التمرير أو أيقونات التكبير لتغيير الفاصل الزمني الملحوظ.

    Performance dashboard

ملاحظة

لكي تقوم Azure SQL Database بعرض المعلومات في Query Performance Insight، يحتاج Query Store إلى تسجيل بضع ساعات من البيانات. إذا لم يكن لقاعدة البيانات أي نشاط أو إذا لم يكن Query Store نشطاً خلال فترة معينة، فستكون المخططات فارغة عندما يعرض Query Performance Insight هذا النطاق الزمني. يمكنك تمكين Query Store في أي وقت إذا لم يكن قيد التشغيل. لمزيد من المعلومات، راجع أفضل الممارسات مع Query Store.

للحصول على توصيات بشأن أداء قاعدة البيانات، حدد توصيات في شفرة التنقل الخاصة بـ Query Performance Insight.

The Recommendations tab

مراجعة أهم الاستعلامات التي تستهلك وحدة المعالجة المركزية

بشكل افتراضي، يعرض Query Performance Insight أهم خمسة استعلامات تستهلك وحدة المعالجة المركزية عند فتحها لأول مرة.

  1. حدد أو امسح الاستعلامات الفردية لتضمينها أو استبعادها من المخطط باستخدام خانات الاختيار.

    يعرض السطر العلوي النسبة المئوية الإجمالية لـ DTU لقاعدة البيانات. توضح الأشرطة النسبة المئوية لوحدة المعالجة المركزية التي استهلكتها الاستعلامات المحددة في أثناء الفاصل الزمني المحدد. على سبيل المثال، إذا حُدد الأسبوع الماضي، فإن كل شريط يمثل يوماً واحداً.

    Top queries

    هام

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

    على سبيل المثال، إذا تجاوز طلب البحث DTU إلى 100٪ لبضع دقائق فقط، فسيعرض سطر DTU في Query Performance Insight ساعة الاستهلاك بأكملها على أنها 100٪ (نتيجة الحد الأقصى للقيمة المجمعة).

    لمقارنة أدق (حتى دقيقة واحدة)، ضع في اعتبارك إنشاء مخطط استخدام DTU مخصص:

    1. في مدخل Microsoft Azure، حدد Azure SQL Database>مراقبة.
    2. حدد القياسات.
    3. حدد +Add chart.
    4. حدد نسبة DTU على الرسم البياني.
    5. بالإضافة إلى ذلك، حدد Last 24 hours في القائمة العلوية اليمنى وغيِّرها إلى دقيقة واحدة.

    استخدم مخطط DTU المخصص بمستوى أدق من التفاصيل للمقارنة مع مخطط تنفيذ الاستعلام.

    تعرض الشبكة السفلية معلومات مجمعة للاستعلامات المرئية:

    • معرف الاستعلام، وهو معرف فريد للاستعلام في قاعدة البيانات.
    • وحدة المعالجة المركزية لكل استعلام خلال فاصل زمني يمكن ملاحظته، والمعتمد على وظيفة التجميع.
    • المدة لكل استعلام، والمعتمدة أيضاً على وظيفة التجميع.
    • إجمالي عدد عمليات التنفيذ لاستعلام محدد.
  2. إذا أصبحت بياناتك قديمة، فحدد الزر Refresh .

  3. استخدم أشرطة التمرير وأزرار التكبير لتغيير الفاصل الزمني للمراقبة والتحقق من ارتفاع الاستهلاك:

    Sliders and zoom buttons for changing the interval

  4. اختيارياً، يمكنك تحديد علامة التبويب Custom لتخصيص العرض لـ:

    • متري (وحدة المعالجة المركزية، المدة، عدد التنفيذ).
    • الفاصل الزمني (آخر 24 ساعة أو الأسبوع الماضي أو الشهر الماضي).
    • عدد الاستفسارات.
    • وظيفة التجميع.

    Custom tab

  5. حدد زر انتقل إلى > لمشاهدة العرض المخصص.

    هام

    تقتصر رؤية أداء الاستعلام على عرض أهم 5 إلى 20 استعلاماً مستهلكاً، اعتماداً على اختيارك. يمكن لقاعدة البيانات الخاصة بك تشغيل العديد من الاستعلامات بخلاف تلك المعروضة، ولن تُضاف هذه الاستعلامات في الرسم البياني.

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

    على سبيل المثال، قد يستهلك الاستعلام قدراً كبيراً من DTU لفترة من الوقت، على الرغم من أن إجمالي استهلاكه في الفترة الملاحظة أقل من الاستعلامات الأخرى الأكثر استهلاكاً. في مثل هذه الحالة، لن يظهر استخدام الموارد لهذا الاستعلام على الرسم البياني.

    إذا كنت بحاجة إلى فهم أهم عمليات تنفيذ الاستعلام بما يتجاوز حدود Query Performance Insight، ففكر في استخدام Azure SQL Insights لمراقبة أداء قاعدة البيانات المتقدمة واستكشاف الأخطاء وإصلاحها.

عرض تفاصيل الاستعلام الفردية

لعرض تفاصيل الاستعلام:

  1. حدد أي استعلام في قائمة أهم الاستعلامات.

    List of top queries

    يفتح عرض مفصل. يعرض استهلاك وحدة المعالجة المركزية، والمدة، وعدد مرات التنفيذ بمرور الوقت.

  2. حدد ميزات الرسم البياني للحصول على التفاصيل.

    • يظهر الرسم البياني العلوي خطاً مع النسبة المئوية الإجمالية لقاعدة البيانات DTU. الأشرطة هي النسبة المئوية لوحدة المعالجة المركزية التي استهلكها الاستعلام المحدد.
    • يعرض الرسم البياني الثاني المدة الإجمالية للاستعلام المحدد.
    • يوضح الرسم البياني السفلي إجمالي عدد عمليات التنفيذ بواسطة الاستعلام المحدد.

    Query details

  3. اختيارياً، استخدم أشرطة التمرير أو استخدم أزرار التكبير/التصغير أو حدد Settings لتخصيص كيفية عرض بيانات الاستعلام، أو لاختيار نطاق زمني مختلف.

    هام

    لا يلتقط Query Performance Insight أي استعلامات DDL. في بعض الحالات، قد لا تلتقط جميع طلبات البحث المخصصة.

    في حالة تأمين قاعدة البيانات الخاصة بك، لن تتمكن شفرة تفاصيل الاستعلام من التحميل.

مراجعة أهم الاستعلامات لكل مدة

يمكن أن يساعدك مقياسان في Query Performance Insight على العثور على الاختناقات المحتملة: المدة وعدد التنفيذ.

تتمتع الاستعلامات طويلة المدى بإمكانية أكبر لتأمين الموارد لفترة أطول، وحظر المستخدمين الآخرين، والحد من قابلية التوسع. وهم كذلك أفضل المرشحين للتحسين. لمزيد من المعلومات، راجع التعرف على مشكلات حظر Azure SQL وحلها.

لتحديد الاستعلامات طويلة الأمد:

  1. افتح علامة التبويب Custom في Query Performance Insight لقاعدة البيانات المحددة.

  2. غيّر المقاييس إلى duration.

  3. حدد عدد الاستعلامات والفاصل الزمني للمراقبة.

  4. حدد وظيفة التجميع:

    • تجمعSum كل وقت تنفيذ الاستعلام لفترة المراقبة بأكملها.
    • يعثرMax على الاستعلامات التي يكون فيها وقت التنفيذ أقصى فترة في المراقبة بأكملها.
    • يعثرAvg​​ على متوسط ​​وقت تنفيذ جميع عمليات تنفيذ طلبات البحث، ويظهر لك أعلى المعدلات لهذه المتوسطات.

    Query duration

  5. حدد زر انتقل إلى > لمشاهدة العرض المخصص.

    هام

    لا يؤدي ضبط عرض الاستعلام إلى تحديث سطر DTU. يعرض خط DTU دائماً الحد الأقصى لقيمة الاستهلاك للفاصل الزمني.

    لفهم استهلاك قاعدة البيانات DTU بمزيد من التفاصيل (حتى دقيقة واحدة)، ضع في اعتبارك إنشاء مخطط مخصص في مدخل Microsoft Azure:

    1. حدد Azure SQL Database>مراقبة.
    2. حدد القياسات.
    3. حدد +Add chart.
    4. حدد نسبة DTU على الرسم البياني.
    5. بالإضافة إلى ذلك، حدد Last 24 hours في القائمة العلوية اليمنى وغيِّرها إلى دقيقة واحدة.

    نوصي باستخدام مخطط DTU المخصص للمقارنة مع مخطط أداء الاستعلام.

مراجعة أهم الاستعلامات في عدد عمليات التنفيذ

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

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

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

لتحديد طلبات البحث المنفذة بشكل متكرر ("الدردشة"):

  1. افتح علامة التبويب Custom في Query Performance Insight لقاعدة البيانات المحددة.

  2. غيّر المقاييس إلى عدد التنفيذ.

  3. حدد عدد الاستعلامات والفاصل الزمني للمراقبة.

  4. حدد زر انتقل إلى > لمشاهدة العرض المخصص.

    Query execution count

فهم التعليقات التوضيحية لضبط الأداء

أثناء استكشاف حمولة العمل الخاص بك في Query Performance Insight، قد تلاحظ وجود رموز بخط عمودي أعلى المخطط.

هذه الرموز تمثل التعليقات التوضيحية. تعرض توصيات الأداء من Azure SQL Database Advisor. بتمرير مؤشر الفأرة فوق أحد التعليقات التوضيحية، يمكنك الحصول على معلومات ملخصة عن توصيات الأداء.

Query annotation

إذا كنت تريد فهم المزيد أو تطبيق توصية المستشار، فحدد الرمز لفتح تفاصيل الإجراء الموصى به. إذا كانت هذه توصية نشطة، يمكنك تطبيقها على الفور من البوابة.

Query annotation details

في بعض الحالات، نظراً إلى مستوى التكبير/التصغير، من الممكن تصغير التعليقات التوضيحية القريبة من بعضها في تعليق توضيحي واحد. يمثل Query Performance Insight تصغير التعليقات على هيئة أيقونة تعليق توضيحي للمجموعة. يؤدي تحديد رمز التعليق التوضيحي للمجموعة إلى فتح شفرة جديدة تسرد التعليقات التوضيحية.

قد يساعدك ربط الاستعلامات وإجراءات ضبط الأداء على فهم حمولة العمل بشكل أفضل.

تحسين تكوين Query Store

أثناء استخدام Query Performance Insight، قد ترى رسائل خطأ Query Store التالية:

  • "لم يُكوَّن مخزن الاستعلام بشكل صحيح في هذه القاعدة من البيانات. انقر هنا لمعرفة المزيد".
  • "لم يُكوَّن مخزن الاستعلام بشكل صحيح في هذه القاعدة من البيانات. انقر هنا لتغيير الإعدادات".

تظهر هذه الرسائل عادةً عندما يتعذر على Query Store جمع بيانات جديدة.

تحدث الحالة الأولى Query Store في حالة القراءة فقط وتُعين المعلمات على النحو الأمثل. يمكنك إصلاح ذلك عن طريق زيادة حجم مخزن البيانات، أو عن طريق مسح Query Store. (إذا قمت بمسح Query Store، فستفقد جميع عمليات التتبع عن بُعد المجموعة مسبقاً.)

Query Store details

تحدث الحالة الثانية عند عدم تمكين Query Store، أو عند عدم تعيين المعلمات على النحو الأمثل. يمكنك تغيير نهج الاستبقاء والالتقاط، وكذلك تمكين Query Store، عن طريق تشغيل الأوامر التالية المقدمة من SQL Server Management Studio (SSMS) أو مدخل Microsoft Azure.

هناك نوعان من نُهُج الاستبقاء:

  • استناداً إلى الحجم: إذا عُيِّنت هذه النهج على تلقائي، فستُنظف البيانات تلقائياً عند الوصول إلى الحد الأقصى للحجم تقريباً.
  • مستند إلى الوقت: بشكل افتراضي، تُعيَّن هذه النهج على 30 يوماً. إذا نفدت مساحة مخزن الاستعلام، فسيحذف معلومات الاستعلام الأقدم من 30 يوماً.

يمكنك تعيين نهج الالتقاط على:

  • الكل: يلتقط Query Store جميع الاستعلامات.
  • تلقائي: يتجاهل متجر الاستعلامات غير المتكررة، والاستعلامات التي لا فائدة من جمعها مع مدة التنفيذ. تُعين حدود عدد مرات التنفيذ ومدة الترجمة ومدة وقت التشغيل داخلياً. هذا هو الخيار الافتراضي.
  • لا شيء: يتوقف متجر الاستعلامات عن التقاط الاستعلامات الجديدة، ولكن يستمر جمع إحصائيات وقت التشغيل لطلبات البحث الملتقطة بالفعل.

نوصي بتعيين جميع النُهج على تلقائي ونهج التنظيف على 30 يوماً عن طريق تنفيذ الأوامر التالية من SSMS أو مدخل Microsoft Azure. (استبدل YourDB باسم قاعدة البيانات.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO);

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30));

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (QUERY_CAPTURE_MODE = AUTO);

قم بزيادة حجم مخزن الاستعلام عن طريق الاتصال بقاعدة بيانات من خلال SSMS أو مدخل Microsoft Azure وتشغيل الاستعلام التالي. (استبدل YourDB باسم قاعدة البيانات.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 1024);

سيؤدي تطبيق هذه الإعدادات في النهاية إلى جعل Query Store يجمع التتبع عن بُعد لطلبات البحث الجديدة. إذا كنت تريد تشغيل Query Store على الفور، فيمكنك اختياراً اختيار مسح Query Store عن طريق تشغيل الاستعلام التالي من خلال SSMS أو مدخل Microsoft Azure. (استبدل YourDB باسم قاعدة البيانات.)

ملاحظة

سيؤدي تشغيل الاستعلام التالي إلى حذف جميع عمليات التتبع عن بُعد المجموعة مسبقاً في Query Store.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

الخطوات التالية

ضع في اعتبارك استخدام Azure SQL Analytics لمراقبة الأداء المتقدم لأسطول كبير من قواعد البيانات الفردية والمجمعة، والتجمعات المرنة، والمثيلات المُدارة وقواعد بيانات المثيل.