Distribution Advisor in Azure Synapse SQL

تلميح

Microsoft Fabric Data Warehouse هو مستودع علائقي على نطاق مؤسسي قائم على أساس بحيرة البيانات، مع بنية جاهزة للمستقبل، وذكاء اصطناعي مدمج، وميزات جديدة. إذا كنت جديدا في مستودع البيانات، ابدأ ب Fabric Data Warehouse. يمكن لأحمال عمل تجمع SQL المخصصة الحالية الترقية إلى Fabric للوصول إلى قدرات جديدة في علوم البيانات، والتحليلات اللحظية، والتقارير.

ينطبق على: Azure Synapse Analytics SQL pools المخصص (سابقا SQL DW)

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

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

ملحوظة

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

المتطلبات المسبقه

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

  • تأكد من توفر الإحصائيات وتاريخ up-toقبل تعيين المستشار. لمزيد من التفاصيل، قم بإدارة إحصائيات الجدول، إنشاء الإحصائيات، وتحديث مقالات الإحصائيات لمزيد من التفاصيل حول الإحصاءات.

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

تحليل عبء العمل وتوليد توصيات التوزيع

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

يقوم Distribution Advisor بتحليل الاستعلامات التي تدار على جداول المستخدمين فقط.

1. إنشاء إجراءات مخزنة في Distribution Advisor

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

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

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

2أ. شغل المستشار حول عبء العمل السابق في إدارة المركبات

شغل الأوامر التالية لقراءة حتى آخر 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 الجدول الذي حلله المدعي العام. سطر واحد لكل جدول بغض النظر عن التغيير في التوصية.
Current_Distribution استراتيجية توزيع الجدول الحالية.
Recommended_Distribution توزيع موصى به. قد يكون هذا مثل Current_Distribution عدم وجود أي تغيير موصى به.
Distribution_Change_Command أمر CTAS T-SQL لتنفيذ التوصية.

4. تطبيق النصائح

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

ملحوظة

لمساعدتنا في تحسين Distribution Advisor، يرجى تعبئة هذا الاستبيان السريع.

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

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

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 مجموعة النتائج.

لقطة شاشة لنتيجة T-SQL تظهر Command_to_Invoke_Distribution_Advisor.

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

لقطة شاشة لنتيجة T-SQL تظهر Command_to_Invoke_Distribution_Advisor مع مجموعة نتائج ثانية تحتوي على أوامر تغيير T-SQL في الجدول.

2ب. التخفيف من المخاطر:
  • تحقق من مخرجات ما CommandToInvokeAdvisorString سبق.

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

3. خطأ أثناء معالجة التوصيات بعد المعالجة

3أ. عَرَض:

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

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

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

Azure Synapse product group feedback

لمساعدتنا في تحسين Distribution Advisor، يرجى تعبئة هذا الاستبيان السريع.

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

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

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

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