مستشار التوزيع في Azure Synapse SQL

ينطبق على: تجمعات SQL المخصصة ل Azure Synapse Analytics (المعروف سابقا ب SQL DW)

في Azure Synapse SQL، يتم توزيع كل جدول باستخدام الاستراتيجية التي اختارها العميل (Round Robin، Hash Distributed، Replicated). يمكن أن تؤثر استراتيجية التوزيع المختارة على أداء الاستعلام بشكل كبير.

ميزة "مستشار التوزيع" (DA) في Azure Synapse SQL تحلل استعلامات العملاء وتوصي بأفضل استراتيجيات التوزيع للجداول لتحسين أداء الاستعلام. يمكن توفير الاستعلامات التي سينظر فيها المستشار من قبل العميل أو سحبها من الاستعلامات التاريخية المتوفرة في DMV.

إشعار

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

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

  • نفذ عبارة SELECT @@version T-SQL للتأكد من أن تجمع SQL المخصص ل Azure Synapse Analytics هو الإصدار 10.0.15669 أو أعلى. إذا كان إصدارك أقل، يجب أن يصل الإصدار الجديد تلقائيا إلى تجمعات SQL المخصصة المتوفرة أثناء دورة الصيانة الخاصة بها.

  • تأكد من توفر الإحصائيات وتحديثها قبل تشغيل المستشار. لمزيد من التفاصيل، قم بإدارة إحصائيات الجدول وإنشاء الإحصائيات ومقالات UPDATE STATISTICS للحصول على مزيد من التفاصيل حول الإحصائيات.

  • تمكين مستشار توزيع Azure Synapse للجلسة الحالية باستخدام الأمر SET RECOMMENDATIONS T-SQL.

تحليل حمل العمل وإنشاء توصيات التوزيع

يشرح البرنامج التعليمي التالي نموذج حالة الاستخدام لاستخدام ميزة "مرشد التوزيع" لتحليل استعلامات العملاء والتوصية بأفضل استراتيجيات التوزيع.

يحلل "مستشار التوزيع" الاستعلامات التي يتم تشغيلها على جداول المستخدمين فقط.

1. إنشاء الإجراءات المخزنة لمستشار التوزيع

لتشغيل المستشار بسهولة، قم بإنشاء إجراءين مخزنين جديدين في قاعدة البيانات. تشغيل البرنامج النصي CreateDistributionAdvisor_PublicPreview المتوفر للتنزيل من GitHub:

الأمر ‏‏الوصف
dbo.write_dist_recommendation تعريف الاستعلامات التي سيقوم DA بتحليلها. يمكنك توفير الاستعلامات يدويا، أو القراءة من ما يصل إلى 100 استعلامات سابقة من أحمال العمل الفعلية في sys.dm_pdw_exec_requests.
dbo.read_dist_recommendation يشغل المستشار وينشئ توصيات.

فيما يلي مثال على كيفية تشغيل المستشار.

2أ. تشغيل المستشار على حمل العمل السابق في DMV

قم بتشغيل الأوامر التالية لقراءة ما يصل إلى آخر 100 استعلامات في حمل العمل للتحليل وتوصيات التوزيع:

EXEC dbo.write_dist_recommendation <Number of Queries max 100>, NULL
go
EXEC dbo.read_dist_recommendation;
go

لمعرفة الاستعلامات التي تم تحليلها بواسطة DA، قم بتشغيل البرنامج النصي e2e_queries_used_for_recommendations.sql المتوفر للتنزيل من GitHub.

2ب. تشغيل المستشار على الاستعلامات المحددة

يجب تعيين المعلمة الأولى في dbo.write_dist_recommendation إلى 0، والمعلمة الثانية هي قائمة مفصولة بفواصل منقوطة تصل إلى 100 استعلام سيقوم DA بتحليلها. في المثال أدناه، نريد أن نرى توصية التوزيع لعبارتين مفصولتين بفواصل منقوطة، select count (*) from t1; و select * from t1 join t2 on t1.a1 = t2.a1;.

EXEC dbo.write_dist_recommendation 0, 'select count (*) from t1; select * from t1 join t2 on t1.a1 = t2.a1;'
go
EXEC dbo.read_dist_recommendation;
go

3. عرض التوصيات

سيقوم الإجراء المخزن للنظام dbo.read_dist_recommendation بإرجاع التوصيات بالتنسيق التالي عند اكتمال التنفيذ:

اسم العمود الوصف
table_name الجدول الذي قام DA بتحليله. سطر واحد لكل جدول بغض النظر عن التغيير في التوصية.
توزيع المحتوى استراتيجية توزيع الجدول الحالية.
Recommended_Distribution خيار التوزيع الموصى به يمكن أن يكون هذا هو نفسه كما Current_Distribution لو لم يكن هناك أي تغيير موصى به.
Distribution_Change_Command أمر CTAS T-SQL لتنفيذ التوصية.

4. تنفيذ المشورة

  • قم بتشغيل الأمر CTAS الذي يوفره "مستشار التوزيع" لإنشاء جداول جديدة باستخدام استراتيجية التوزيع الموصى بها.
  • تعديل الاستعلامات لتشغيلها على جداول جديدة.
  • تنفيذ الاستعلامات على الجداول القديمة والجديدة للمقارنة لتحسينات الأداء.

إشعار

لمساعدتنا على تحسين "مرشد التوزيع"، يرجى ملء هذا الاستطلاع السريع.

استكشاف الأخطاء وإصلاحها

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

1. حالة لا معنى لها من تشغيل سابق للمستشار

1أ. العلامة:

ترى رسالة الخطأ هذه عند تشغيل المستشار:

Msg 110813, Level 16, State 1, Line 1
Calling GetLastScalarResult() before executing scalar subquery.
1ب. التخفيف من المخاطر:
  • تحقق من أنك تستخدم علامات اقتباس مفردة '' لتشغيل المستشار على استعلامات التحديد.
  • بدء جلسة عمل جديدة في SSMS وتشغيل المستشار.

2. الأخطاء أثناء تشغيل المستشار

2أ. العلامة:

يظهر CommandToInvokeAdvisorString جزء "النتيجة" أدناه ولكنه لا يظهر أدناه RecommendationOutput .

على سبيل المثال، ترى مجموعة النتائج فقط Command_to_Invoke_Distribution_Advisor .

Screenshot of the output of a T-SQL result showing the Command_to_Invoke_Distribution_Advisor.

ولكن ليس مجموعة النتائج الثانية التي تحتوي على الجدول تغيير أوامر T-SQL:

Screenshot of the output of a T-SQL result showing the Command_to_Invoke_Distribution_Advisor with a second resultset containing table change T-SQL commands.

2ب. التخفيف من المخاطر:
  • تحقق من إخراج CommandToInvokeAdvisorString أعلاه.

  • قم بإزالة الاستعلامات التي قد لا تكون صالحة بعد الآن والتي ربما تمت إضافتها هنا إما من الاستعلامات المحددة يدويا أو من DMV عن طريق تحرير WHERE عبارة في: الاستعلامات التي تم النظر فيها بواسطة DA.

3. خطأ أثناء المعالجة اللاحقة لإخراج التوصية

3أ. العلامة:

ترى رسالة الخطأ التالية:

Invalid length parameter passed to the LEFT or SUBSTRING function.
3ب. التخفيف من المخاطر:

تأكد من أن لديك أحدث إصدار من الإجراء المخزن من GitHub:

ملاحظات مجموعة منتجات Azure Synapse

لمساعدتنا على تحسين "مرشد التوزيع"، يرجى ملء هذا الاستطلاع السريع.

إذا كنت بحاجة إلى معلومات غير متوفرة في هذه المقالة، فابحث في صفحة سؤال Microsoft Q&A عن Azure Synapse وهو مكان يمكنك من طرح الأسئلة على المستخدمين الآخرين وإلى مجموعة منتجات Azure Synapse Analytics.

نحن نراقب هذا المنتدى بنشاط لضمان الإجابة على أسئلتك إما من قِبل مستخدم آخر أو أحدنا. إذا كنت تفضل طرح أسئلتك على Stack Overflow، فلدينا أيضاً منتدى Azure Synapse Analytics Stack Overflow.

لطلبات الميزات، استخدم صفحة ملاحظات Azure Synapse Analytics . تساعدنا إضافة طلباتك أو إجراء تصويت أعلى على الطلبات الأخرى على التركيز على الميزات الأكثر طلبا.

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