استخدام الإجراءات المخزنة لتجمع SQL المخصص في Azure Synapse Analytics

نصيحة

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

تقدم هذه المقالة نصائح لتطوير حلول مخصصة لمجموعات SQL من خلال تنفيذ الإجراءات المخزنة.

ما الذي يمكن توقعه

تدعم مجموعة SQL المخصصة العديد من ميزات T-SQL المستخدمة في SQL Server. والأهم من ذلك، هناك ميزات محددة للتوسع يمكنك استخدامها لتعظيم أداء حلك.

أيضا، لمساعدتك في الحفاظ على حجم وأداء مجموعة SQL المخصصة، هناك ميزات ووظائف إضافية لها اختلافات سلوكية.

تقديم الإجراءات المخزنة

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

يوفر تجمع SQL المخصص تنفيذا لإجراءات مخزنة مبسطة ومبسطة. أكبر فرق مقارنة ب SQL Server هو أن الإجراء المخزن ليس كودا مترجما مسبقا.

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

نصيحة

الهدف هو توفير الساعات والدقائق والثواني، وليس الأجزاء من الثانية. لذا، من المفيد التفكير في الإجراءات المخزنة كحاويات لمنطق SQL.

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

إجراءات التخزين المتداخلة

عندما تستدعي الإجراءات المخزنة إجراءات مخزنة أخرى، أو تنفذ SQL ديناميكي، يقال إن الإجراء الداخلي المخزن أو استدعاء الكود متداخل.

يدعم تجمع SQL المخصص ما يصل إلى ثمانية مستويات تعشيش. على النقيض من ذلك، مستوى العش في SQL Server هو 32.

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

EXEC prc_nesting

إذا أجرى الإجراء المخزن أيضا استدعاء EXEC آخر، يرتفع مستوى العش إلى اثنين.

CREATE PROCEDURE prc_nesting
AS
EXEC prc_nesting_2  -- This call is nest level 2
GO
EXEC prc_nesting

إذا نفذ الإجراء الثاني بعض SQL ديناميكي، يرتفع مستوى العش إلى ثلاثة.

CREATE PROCEDURE prc_nesting_2
AS
EXEC sp_executesql 'SELECT 'another nest level'  -- This call is nest level 2
GO
EXEC prc_nesting

تجمع SQL المخصص لا يدعم حاليا @@NESTLEVEL. لذلك، عليك تتبع مستوى العش. من غير المرجح أن تتجاوز حد مستوى الأعشاش الثمانية. لكن إذا فعلت ذلك، عليك إعادة صياغة الكود ليتناسب مع مستويات التداخلات ضمن هذا الحد.

إدراج.. التنفيذ

تجمع SQL المخصص لا يسمح لك باستهلاك مجموعة النتائج لإجراء مخزن باستخدام عبارة INSERT. ومع ذلك، هناك نهج بديل يمكنك استخدامه. على سبيل المثال، راجع المقالة حول الجداول المؤقتة.

القيود

هناك بعض الجوانب في Transact-SQL الإجراءات المخزنة التي لا يتم تنفيذها في تجمع SQL مخصص، وهي كما يلي:

  • إجراءات التخزين المؤقتة
  • إجراءات المخزنة المرقمة
  • إجراءات التخزين الممتدة
  • إجراءات تخزين CLR
  • خيار التشفير
  • خيار التكرار
  • المعاملات ذات القيمة الجداولية
  • معلمات القراءة فقط
  • المعايير الافتراضية
  • سياقات التنفيذ
  • بيان الإرجاع

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

لمزيد من نصائح التطوير، قم بمراجعةنظرة عامة على التطوير.