عندما يرسل المستخدم استعلامًا —ويكون عادةً مكتوبًا بصيغة عبارة بلغة الاستعلام المنظمة (SQL)— تقوم قاعدة البيانات بتقييم عدة طرق لاسترجاع البيانات المطلوبة. تتم إدارة عملية صناعة القرار هذه بواسطة عنصر يُعرف باسم مُحسِّن الاستعلام، والذي يختار إستراتيجية التنفيذ الأكثر كفاءة.
وتستخدم أنظمة إدارة قواعد البيانات (DBMS) الحديثة مُحسِّنات قائمة على التكلفة تُقدّر تكلفة إستراتيجيات التنفيذ المختلفة قبل تحديد الخيار الأكثر كفاءة. وبسبب هذه العملية، يمكن أن يمتلك استعلامان في قاعدة البيانات ينتجان نتائج متطابقة أزمنة تنفيذ مختلفة بشكل كبير —وغالبًا ما تُقاس بالمللي ثانية— ما يؤثر في أداء الاستعلام وزمن الاستجابة.
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
يؤثر تحسين الاستعلام —أو تحسين استعلام SQL— في جوانب تتجاوز بكثير أداء الاستعلام الفردي. فهو يحدد كفاءة أنظمة البيانات بالكامل، ونماذج التعلم الآلي، ومبادرات الذكاء الاصطناعي (AI)، من خلال تحسين كيفية توسّع الأنظمة واستخدامها للموارد.
تعتمد التطبيقات على قواعد البيانات لاسترجاع المعلومات بسرعة وبشكل متسق. وعندما تكون الاستعلامات غير فعّالة، قد تقضي قواعد البيانات وقتًا غير ضروري في تنفيذ عمليات فحص الجداول، أو فرز السجلات، أو ربط مجموعات البيانات الكبيرة. ويمكن أن تؤدي هذه التأخيرات إلى إبطاء واجهات برمجة التطبيقات (APIs) وأحمال تشغيل التحليلات، ما يؤدي إلى حدوث اختناقات تضعف تجربة المستخدم بشكل عام.
ومع جمع المؤسسات لمزيد من البيانات، يجب أن تدعم قواعد البيانات أحمال تشغيل متزايدة التعقيد مدفوعة بالحجم الهائل للبيانات، وتنوع أنواع البيانات، وأنماط الاستعلامات الأكثر تطلبًا.
ومع توقّع وصول حجم البيانات العالمي إلى 393.9 زيتابايت بحلول عام 2028، فإن الاستعلامات التي كانت تعالج آلاف الصفوف قد تصبح في النهاية تعالج ملايين أو مليارات الصفوف. يعمل تحسين الاستعلام على تحسين قابلية التوسع من خلال تمكين تنفيذ استعلامات فعّالة، حتى مع زيادة حجم البيانات وتعقيد أحمال التشغيل.
تُقلّل خطط التنفيذ الفعّالة أيضًا من الموارد المطلوبة لمعالجة الاستعلامات. تتطلب كل عملية داخل قاعدة البيانات موارد نظام لمعالجة البيانات، بما في ذلك دورات وحدة المعالجة المركزية (CPU) وعمليات الإدخال/الإخراج للقرص (I/O).
وتكون الاستعلامات ضعيفة التحسين كثيفة الاستهلاك للموارد، إذ تتطلب قدرًا أكبر بكثير من المعالجة مقارنةً بما هو ضروري لإنتاج النتيجة نفسها. ويمكن أن يكون هذا الارتفاع في استهلاك الموارد مكلفًا في البيئات السحابية التي يؤثر فيها استخدام الموارد بشكل مباشر في التكلفة.
تعتمد منصات البيانات الحديثة التي تدعم التعلم الآلي، والتحليلات الفورية، والتوليد المعزز بالاسترجاع (RAG)، والذكاء الاصطناعي على وصول سريع وموثوق إلى كميات كبيرة من البيانات. يساعد تحسين الاستعلام على ضمان قدرة هذه الأنظمة على استرجاع المعلومات ذات الصلة بسرعة كافية لدعم صناعة القرار الفورية دون التأثير في الميزانيات.
يمكن لمُحسِّنات قواعد البيانات استخدام عدة نُهُج عند تقييم إستراتيجيات التنفيذ المحتملة. غالبًا ما كانت أنظمة قواعد البيانات المبكرة تستخدم التحسين القائم على القواعد، والذي يطبق قواعد محددة سابقًا لتحديد خطط التنفيذ استنادًا إلى بنية الاستعلام.
أما أنظمة إدارة قواعد البيانات الحديثة، فعادةً ما تعطي الأولوية للتحسين القائم على التكلفة، والذي يقيّم عدة إستراتيجيات تنفيذ محتملة ويقدّر الموارد المطلوبة لكل منها. كما تتضمن بعض الأنظمة تقنيات قائمة على الاستدلال، والتي تطبق إرشادات عملية لتبسيط تخطيط الاستعلامات وتقليل العبء الإضافي لعمليات التحسين.
وبغض النظر عن نهج التحسين المستخدم، هناك عدة مفاهيم تقنية تُشكّل الطريقة التي يقيّم بها المُحسِّن إستراتيجيات التنفيذ المحتملة، بما في ذلك:
يُعد مُحسِّن الاستعلام العنصر المسؤول في قاعدة البيانات عن اختيار خطط التنفيذ الفعّالة، وغالبًا ما يستخدم تقنيات التحسين القائم على التكلفة. وفي قواعد البيانات العلائقية، تساعد هذه العملية محرّك قاعدة البيانات على تحديد أكثر الطرق كفاءةً لتنفيذ استعلام SQL.
وبدلاً من الاعتماد على قواعد ثابتة، تقوم المُحسِّنات القائمة على التكلفة بتحليل خصائص البيانات وبنية الاستعلام لتحديد النهج الأكثر كفاءة. وتتيح هذه المرونة لقواعد البيانات تكييف إستراتيجيات التنفيذ مع تطور مجموعات البيانات وأحمال التشغيل.
تعتمد المُحسِّنات بدرجة كبيرة على إحصاءات قاعدة البيانات لتقدير مدى تكلفة خطط التنفيذ المختلفة. تصف الإحصاءات الخصائص الرئيسية للبيانات المخزنة، بما في ذلك:
تسمح هذه الإحصاءات للمُحسِّن بتقدير عدد الصفوف التي سيُرجعها الاستعلام ومقدار العمل الذي تتطلبه إستراتيجيات التنفيذ المختلفة. وإذا أصبحت الإحصاءات قديمة أو غير دقيقة، فقد يختار المُحسِّن خطط تنفيذ غير فعّالة.
يشير تقدير العلاقة الأساسية إلى التنبؤ بعدد الصفوف الناتجة عن كل خطوة في الاستعلام. على سبيل المثال، إذا قام الاستعلام بتصفية الصفوف باستخدام عبارات WHERE مثل:
WHERE region = 'North America'
فيجب على المُحسِّن تقدير عدد السجلات التي تطابق عامل التصفية هذا.
تؤثر هذه التقديرات في عدة قرارات رئيسية. وقد يستخدمها المُحسِّن لتحديد ترتيب ربط الجداول، وأكثر ترتيبات الربط كفاءة، وخوارزميات الربط التي ينبغي استخدامها، أو ما إذا كان يجب استخدام فحص الفهرس بدلاً من فحص الجدول بالكامل.
تسمح الفهارس لقواعد البيانات بالعثور على بيانات محددة بكفاءة أكبر مقارنةً بفحص الجداول بالكامل. وتستخدم المُحسّنات الفهارس لتقليل حجم العمل المطلوب لاسترجاع البيانات.
وتشمل مسارات الوصول الشائعة عمليات فحص الجدول بالكامل، والتي تقرأ كل صف في الجدول؛ وعمليات فحص الفهرس، التي تقرأ الصفوف عبر بنية الفهرس؛ وعمليات البحث عبر الفهرس، التي تسترجع صفوفًا محددة باستخدام عمليات البحث في الفهرس؛ وعمليات الفحص المعتمدة على الفهرس فقط، التي تسترجع البيانات مباشرةً من الفهرس دون الوصول إلى الجدول الأساسي.
ويمكن أن يؤدي اختيار مسار الوصول الصحيح إلى تقليل حجم العمل المطلوب لتنفيذ الاستعلام بشكل كبير، خاصةً عند التعامل مع الجداول الكبيرة.
تسترجع العديد من الاستعلامات البيانات من عدة جداول. وعندما يحدث ذلك، يجب على المُحسِّن تحديد كيفية دمج هذه الجداول. وتشمل خوارزميات الربط الشائعة ما يأتي:
ويختار المُحسِّن بين هذه الخوارزميات استنادًا إلى عوامل مثل حجم البيانات، والفهارس المتاحة، والتقديرات الخاصة بعدد الصفوف.
لفهم كيفية عمل تحسين الاستعلام، من المفيد النظر إلى لغة الاستعلام المنظمة على أنها لغة وصفية: فهي تصف البيانات التي ينبغي استرجاعها بدلاً من كيفية استرجاعها.
ويكون المُحسِّن مسؤولاً عن تحديد كيفية تنفيذ الطلب، وبأكثر الطرق كفاءة. ولتحقيق ذلك، تتبع معظم قواعد البيانات عدة خطوات للتحسين:
عند إرسال استعلام، تقوم قاعدة البيانات أولاً بتحليل عبارة لغة الاستعلام المنظمة والتحقق من صحة بنيتها النحوية. وخلال هذه المرحلة، يتأكد النظام من وجود الجداول والأعمدة والفهارس المشار إليها، ومن أن بنية الاستعلام صحيحة.
كما يتحقق من توفر الكائنات ذات الصلة داخل مخطط قاعدة البيانات. وتضمن هذه الخطوة أن قاعدة البيانات تفهم الطلب قبل محاولة تحسينه أو تنفيذه.
بعد التحليل، قد تعيد قاعدة البيانات كتابة الاستعلام إلى صيغة مكافئة يمكن تنفيذها بكفاءة أكبر. وتحافظ هذه التحويلات على نتائج الاستعلام مع تحسين بنية تنفيذه. وتشمل تقنيات إعادة كتابة الاستعلامات الشائعة ما يأتي:
وتسمح هذه التحويلات للمُحسِّن باستكشاف إستراتيجيات تنفيذ أكثر كفاءة دون تغيير النتيجة النهائية. كما يمكن أن تساعد على الحد من معالجة البيانات غير الضرورية.
بمجرد إعادة كتابة الاستعلام، يقوم المُحسِّن بإنشاء عدة خطط تنفيذ محتملة. وتمثل كل خطة إستراتيجية مختلفة لاسترجاع البيانات المطلوبة.
وقد تختلف الخطط بناءً على الفهارس المستخدمة، أو ترتيب ربط الجداول، أو كيفية معالجة النتائج الوسيطة. حتى الاستعلامات البسيطة نسبيًا يمكن أن تنتج عدة إستراتيجيات تنفيذ محتملة.
فعلى سبيل المثال، قد يمتلك استعلام واحد يسترجع الطلبات الخاصة بالأسبوع الماضي عدة خيارات: فقد يقوم بفحص جدول الطلبات ثم تصفية الصفوف لاحقًا، أو يستخدم فهرسًا على تاريخ الطلب لتحديد السجلات الحديثة بسرعة، أو يضيّق مجموعة البيانات أولاً قبل ربط جداول العملاء أو المنتجات ذات الصلة.
بعد ذلك، يقيّم المُحسِّن كل خطة مرشحة باستخدام نموذج تكلفة. وتقدّر نماذج التكلفة مقدار العمل الذي ستحتاج قاعدة البيانات إلى تنفيذه لتشغيل خطة معينة. وعادةً ما تأخذ هذه التقديرات في الحسبان عوامل مثل:
نظرًا إلى أن قاعدة البيانات لا تستطيع معرفة التكلفة الدقيقة سابقًا، فإنها تعتمد على المعلومات الإحصائية المخزنة حول البيانات. وتساعد هذه المعلومات المُحسِّن على تقدير وقت المعالجة المحتمل وتحديد الخوارزمية وهيكل البيانات الداعم الأكثر ملاءمة.
بعد تقييم الخطط المرشحة، يختار المُحسِّن الخطة ذات التكلفة التقديرية الأقل. وتصبح هذه الإستراتيجية المختارة هي خطة تنفيذ الاستعلام، والتي تصف تسلسل العمليات التي تنفذها قاعدة البيانات عند تشغيل الاستعلامات.
وعادةً ما تتضمن خطة التنفيذ الفعّالة عمليات مثل فحص الجداول، وعمليات الربط، والفرز، وعمليات التجميع (على سبيل المثال باستخدام GROUP BY أو LEFT JOIN). ويمكن للمستخدمين مراجعة خطط EXPLAIN لمعرفة الخطوات التي يتخذها المُحسِّن لاسترجاع البيانات المطلوبة.
على الرغم من تطور مُحسِّنات قواعد البيانات الحديثة، فإن هناك عدة عوامل قد تجعل تحسين الاستعلامات أمرًا صعبًا.
على الرغم من أن تحسين الاستعلام يحدث تلقائيًا، فإن المطورين والمسؤولين ومهندسي البيانات يمكنهم تحسين الأداء من خلال عدة تقنيات لتحسين الاستعلام.
يمكن للفهارس أن تحسن أداء الاستعلام بشكل كبير عندما تدعم عوامل التصفية أو شروط الربط المستخدمة بشكل متكرر. وتتيح الفهارس المصممة جيدًا للمُحسِّن استرجاع صفوف محددة بسرعة دون الحاجة إلى فحص الجداول بالكامل. ومع ذلك، فإن الإفراط في إنشاء الفهارس قد يضيف عبئًا إضافيًا أثناء تحديث البيانات. ولذلك يجب تصميم الفهارس بعناية لتحقيق التوازن بين أداء القراءة وكفاءة الكتابة.
نظرًا إلى أن المُحسِّنات تستخدم الإحصاءات لتقدير تكاليف الاستعلامات، فإن الحفاظ على تحديث الإحصاءات يُعد أمرًا ضروريًا للحفاظ على خطط تنفيذ فعّالة. ويضمن تحديث الإحصاءات بانتظام امتلاك المُحسِّن معلومات دقيقة حول توزيعات البيانات وأحجام الجداول.
يؤدي تطبيق عوامل التصفية في مرحلة مبكرة من تنفيذ الاستعلام إلى تقليل عدد الصفوف التي يجب معالجتها لاحقًا في الاستعلام. ويمكن أن تساعد النتائج الوسيطة الأصغر على تسريع تنفيذ الاستعلامات. ولهذا السبب، غالبًا ما تعمل الاستعلامات التي تطبق عوامل تصفية انتقائية مبكرًا بكفاءة أكبر.
يمكن أن تؤدي الاستعلامات التي تجمع عددًا كبيرًا من الجداول إلى إنشاء استعلامات معقدة وخطط تنفيذ معقدة بالقدر نفسه. وعندما تكون عمليات الربط غير ضرورية أو زائدة عن الحاجة، فإن إزالتها يمكن أن تقلل تعقيد التنفيذ بشكل كبير. وفي بعض الحالات، يمكن أن يؤدي إلغاء التطبيع أيضًا إلى تحسين الأداء من خلال تقليل الحاجة إلى عمليات الربط، رغم أنه قد يزيد من استخدام التخزين وتكرار البيانات.
تؤدي الاستعلامات التي تسترجع أعمدة غير ضرورية إلى زيادة كمية البيانات التي يجب قراءتها ومعالجتها. ويؤدي قصر مجموعات النتائج على الحقول المطلوبة فقط إلى تقليل استخدام الذاكرة وعمليات الإدخال/الإخراج للقرص. ويمكن لهذا التعديل البسيط أن يحسن الأداء بشكل ملحوظ في مجموعات البيانات الكبيرة.
في بعض البيئات، يمكن أن يساعد التقسيم على تقسيم الجداول الضخمة جدًا إلى أجزاء أكثر قابلية للإدارة، بينما يمكن أن يقلل التخزين المؤقت من العمل المتكرر على قاعدة البيانات بالنسبة إلى النتائج التي يتم الوصول إليها بشكل متكرر. ولا تُعد هذه النُهُج حلولاً شاملة، لكنها يمكن أن تكمل إستراتيجيات التحسين الأخرى.
كما توفر العديد من منصات قواعد البيانات أدوات مدمجة تساعد المطورين والمسؤولين على تحليل أداء الاستعلامات وتحديد خطط التنفيذ غير الفعّالة.
فعلى سبيل المثال، يمكن لأداة SQL Server Management Studio (SSMS) المساعدة على مراقبة أداء الاستعلامات وتحديد الاختناقات؛ وتوفر MySQL Workbench أدوات لتحليل خطط الاستعلامات وتحسين التنفيذ؛ كما يمكن لأداة Oracle SQL Tuning Advisor إنشاء توصيات تلقائية لتحسين استعلامات SQL.
يرتبط تحسين الاستعلام وضبط الاستعلام ارتباطًا وثيقًا، لكنهما يمثلان عمليتين مختلفتين.
يشير تحسين الاستعلام إلى العملية الآلية التي تستخدمها قواعد البيانات لتحديد إستراتيجيات التنفيذ الفعّالة.
أما ضبط الاستعلام، فيشير إلى الجهود اليدوية لتحسين أداء الاستعلام. وقد تشمل هذه الجهود إعادة كتابة الاستعلامات غير الفعّالة، أو إنشاء فهارس جديدة، أو تحديث الإحصاءات، أو تعديل إعدادات تكوين قاعدة البيانات.
وعمليًا، يعمل تحسين الاستعلام وضبط الاستعلام غالبًا جنبًا إلى جنب لتحسين أداء قواعد البيانات. ويشكلان معًا مجموعة عملية من إستراتيجيات التحسين لتحسين أداء SQL في أنظمة الإنتاج.
يتطور تحسين الاستعلام إلى ما يتجاوز التخطيط التقليدي القائم على التكلفة. وتدمج أنظمة قواعد البيانات الحديثة الآن الأتمتة، والتنفيذ التكيفي، والذكاء الاصطناعي لتحسين كيفية تحليل الاستعلامات وتنفيذها.
ويُعد تطوير قدرات قواعد البيانات الذاتية التشغيل أحد الاتجاهات الناشئة، حيث تراقب الأنظمة الأداء باستمرار وتستجيب للمشكلات تلقائيًا. وبدلاً من الاعتماد بالكامل على استكشاف الأخطاء وإصلاحها بشكل تفاعلي، تقوم هذه الأنظمة بتحليل سلوك أحمال التشغيل، وأداء الاستعلامات، وإشارات النظام لتحديد مشكلات الأداء المحتملة مبكرًا والتوصية بإجراءات تصحيحية.
وتنظم العديد من هياكل قواعد البيانات الذاتية التشغيل هذه القدرات ضمن ثلاثة مجالات تشغيلية، وغالبًا ما تكون مدعومة بوكلاء الذكاء الاصطناعي.
وقد صُممت هذه القدرات القائمة على الوكلاء للعمل ضمن نموذج الأشخاص البشريين في العملية، حيث تتولى الأتمتة المهام التشغيلية المحددة بوضوح بينما تحتفظ فرق قواعد البيانات بالإشراف على الأنظمة الحساسة.
ومع استمرار المؤسسات في توسيع نطاق منصات البيانات واعتماد التطبيقات المستندة إلى الذكاء الاصطناعي، ستلعب الأنظمة القادرة على مراقبة نفسها وتحسينها وصيانتها دورًا متزايد الأهمية في ضمان أداء موثوق لقواعد البيانات.
يتيح لك watsonx.data توسيع نطاق التحليلات والذكاء الاصطناعي باستخدام جميع بياناتك، أينما كانت، من خلال مخزن بيانات مفتوح وهجين ومُدار.
تشغيل تطبيقاتك والتحليلات والذكاء الاصطناعي التوليدي باستخدام قواعد البيانات على أي سحابة.
وسِّع نطاق الذكاء الاصطناعي بنجاح من خلال وجود الاستراتيجية الصحيحة، والبيانات الموثوق بها، والأمن، والحوكمة الفعَّالة.