البرمجة

تحسين أداء SQL: تحويل الاستعلامات إلى إجراءات مخزنة في قواعد البيانات

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

لنبدأ بتحليل الاستعلام الحالي:

sql
Select OpportunityId from opportunity AS c left JOIN ( select a.opportunitynameid from opportunity o JOIN ApprovalDocument a ON a.opportunitynameid=o.OpportunityId ) AS b ON c.OpportunityId=b.opportunitynameid Where b.opportunitynameid IS NULL and statecode=0

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

sql
CREATE PROCEDURE GetOpportunityData AS BEGIN SELECT c.OpportunityId FROM opportunity AS c LEFT JOIN ( SELECT a.opportunitynameid FROM opportunity o JOIN ApprovalDocument a ON a.opportunitynameid=o.OpportunityId ) AS b ON c.OpportunityId = b.opportunitynameid WHERE b.opportunitynameid IS NULL AND c.statecode = 0 END;

تم إنشاء إجراء المخزن GetOpportunityData الذي يقوم بإرجاع معرفات الفرص (OpportunityId) التي تفي بالشروط المحددة. يمكنك استدعاء هذا الإجراء مخزن باستخدام:

sql
EXEC GetOpportunityData;

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

المزيد من المعلومات

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

إجراء المخزن GetOpportunityData يتكون من عدة جزء، لنلقي نظرة على كل جزء على حدة:

  1. CREATE PROCEDURE:

    • يُستخدم لإنشاء إجراء المخزن، وهو مسؤول عن تعريف الهيكل الأساسي للإجراء.
    • GetOpportunityData هو اسم الإجراء المخزن.
  2. AS BEGIN / END:

    • يشير إلى مجموعة الأوامر التي سيقوم الإجراء المخزن بتنفيذها.
    • في هذه الحالة، يتم وضع الاستعلام داخل هذا النطاق لتنفيذه عند استدعاء الإجراء.
  3. SELECT c.OpportunityId:

    • يقوم بتحديد الحقل OpportunityId من جدول opportunity.
  4. LEFT JOIN:

    • يستخدم الانضمام اليساري (LEFT JOIN) لربط الجدول opportunity بالجدول المشتق b.
    • يسمح هذا الانضمام بجلب الصفوف من الجدول الأيسر حتى لو لم تتطابق الشروط.
  5. WHERE بناء الشرط:

    • يقوم بتحديد الشروط التي يجب أن تتوفر لتضمين الصفوف في النتيجة.
    • b.opportunitynameid IS NULL يتحقق مما إذا كان هناك تطابق لـ opportunitynameid في الجدول المشتق b.
    • c.statecode = 0 يتحقق من أن قيمة statecode في الجدول opportunity تكون تساوي 0.

باستخدام هذا الإجراء المخزن، يمكنك استدعاء الاستعلام ببساطة باستخدام:

sql
EXEC GetOpportunityData;

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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