فهرس إنشاء أوراكل

Fhrs Ansha Awrakl



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

أحد الأمثلة على المكان الذي يكون فيه فهرس قاعدة البيانات مفيدًا في نظام إدارة علاقات العملاء.







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



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



للإبحار حول هذا ، يمكننا استخدام فهرس قاعدة البيانات.





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

في هذا البرنامج التعليمي ، ستتعلم كيفية استخدام الأمر CREATE INDEX في قاعدة بيانات Oracle لتهيئة فهرس جديد.



بيان أوراكل تكوين الفهرس

يوضح ما يلي بناء جملة عبارة CREATE INDEX في قواعد بيانات Oracle:

إنشاء الفهرس index_name
تشغيل table_name (العمود 1 ، العمود 2 ، ...) ؛

يُنشئ بناء الجملة أعلاه فهرسًا باسم index_name في الجدول مع اسم table_name باستخدام الأعمدة المحددة (العمود 1 ، العمود 2 ، إلخ) كمفتاح للفهرس.

في Oracle ، المفتاح الأساسي هو عمود أو مجموعة من الأعمدة التي تحدد بشكل فريد كل صف في الجدول. بشكل افتراضي ، تُنشئ Oracle تلقائيًا فهرسًا فريدًا على أعمدة المفاتيح الأساسية للجدول لفرض قيود التفرد وتحسين أداء عمليات البحث عن المفتاح الأساسي.

ومع ذلك ، في بعض الحالات ، قد تحتاج إلى إنشاء فهرس جديد لجدول معين يدويًا.

دعونا نلقي نظرة على بعض الأمثلة حول كيفية تحقيق ذلك.

مثال على فهرس تكوين أوراكل

افترض أن لدينا جدولًا يحتوي على معلومات الموظف كما هو موضح في الإخراج أدناه:

حدد الاسم الأول ، الاسم الأخير ، الراتب ، تاريخ التوظيف من الموظفين ؛

أوراكل تكوين فهرس لعمود واحد

لنفترض أننا نرغب في إنشاء فهرس باستخدام عمود الاسم الأول. يمكننا إجراء استعلام كما هو موضح:

إنشاء فهرس first_name_lookup على EMPLOYEES (FIRST_NAME) ؛

تنشئ عبارة CREATE INDEX فهرسًا باسم first_name_lookup في جدول EMPLOYEES ، باستخدام عمود FIRST_NAME كمفتاح للفهرس. يمكن استخدام هذا الفهرس لتحسين أداء الاستعلامات التي تبحث عن الموظفين باسمهم الأول.

بمجرد إنشاء الفهرس ، يمكننا استخدامه للبحث عن موظف معين كما هو موضح:

حدد الاسم الأول ، اسم_الأخير ، الراتب ، تاريخ_التوظيف
من الموظفين
WHERE first_name = 'William' ؛

نتيجة:

بدون فهرس first_name_lookup ، سيتعين على نظام قاعدة البيانات مسح جدول EMPLOYEES بالكامل للعثور على جميع الصفوف التي يكون فيها عمود FIRST_NAME مساويًا لـ 'William.' ومع ذلك ، مع وجود الفهرس في مكانه ، يمكن لنظام قاعدة البيانات البحث بسرعة عن الصفوف في الفهرس باستخدام قيمة 'John' كمفتاح ثم استرداد الصفوف المطلوبة من الجدول ، والتي ستكون أسرع بكثير.

يمكنك عرض الخطوات المستخدمة عند إجراء الاستعلام باستخدام أمر شرح الخطة كما هو موضح:

شرح خطة تحديد الاسم الأول ، الاسم الأخير ، الراتب ، تاريخ التوظيف
من الموظفين
WHERE first_name = 'William' ؛

خطة الاستعلام الناتجة:

مثال 2 - Oracle Create Index مع أعمدة متعددة

وبالمثل ، يمكننا إنشاء فهرس يتألف من أكثر من عمود واحد في جدول معين. على سبيل المثال ، لنفترض أننا نريد إنشاء فهرس يتألف من العمود الأول والاسم الأخير.

يمكننا استخدام الكود كما هو موضح:

إنشاء فهرس multi_lookup على EMPLOYEES (FIRST_NAME ، LAST_NAME) ؛

تنشئ عبارة CREATE INDEX فهرسًا باسم multi_lookup في جدول EMPLOYEES ، باستخدام أعمدة FIRST_NAME و LAST_NAME كمفتاح للفهرس.

بمجرد الإنشاء ، يمكننا استخدام هذا الفهرس كما هو موضح في نموذج الاستعلام كما هو موضح:

حدد الاسم الأول ، اسم_الأخير ، الراتب ، تاريخ_التوظيف
من الموظفين
WHERE first_name = 'William' AND last_name = 'Smith' ؛

القيمة الناتجة:

وهناك ، لديك طريقة لتسريع استعلامات قاعدة البيانات الخاصة بك باستخدام الفهارس للحد من نطاق البحث.

استنتاج

تسمح لنا عبارة CREATE INDEX في Oracle بإنشاء فهرس على جدول لتحسين أداء عمليات استرجاع البيانات. ومع ذلك ، على الرغم من أن الفهارس يمكن أن تحسن أداء الاستعلام ، فإنها تتحمل أيضًا عقوبات تتعلق بمساحة التخزين ، مما يؤدي إلى تقليل عمليات سرعة الكتابة ، ولا تستخدمها إلا عند الضرورة.