ایندکس

وجود اینکس باعث بهبود عملکرد دستورات select در بخش های where ، group by ، order by ، union، minus و intersect خواهد شد.

اگر ستونی شرایط ذیل را داشته باشد می‌توان بر روی آن ایندکس تعریف کرد

  • برای مراجعه به جدول فوق از ستون زیاد استفاده شود
  • در جایی که ستون جدولcardinality (تنوع مقادیر) بالایی داشته باشد از ایندکس Btree و در جایی که ستون جدولcardinality (تنوع مقادیر) پایین داشته باشد از ایندکس Bitmap استفاده می‌گردد
  • برای تعریف ایندکس Btree تنوع مقادیر ستون باید مابین 3 تا 7 درصد باشد Index باشد
  • روی ستونی که مقادیر null زیادی دارد نباید Index Btree تعریف شود چون مقادیر null در درخت ایندکس قرار داده نمی‌شود
  • اگر در where clause از ستون دارای ایندکس با استفاده از عملگر منطقی or استفاده شود از ایندکس Btree استفاده نمی‌شود
  • ایندکس باعث کندی دستورات DML می‌شود زیرا با هر تغییر در داده‌های جدول درخت ایندکس rebuild می‌شود.
  • اگر ستونی با استفاده از تابع در where clause استفاده می‌شود به جای تعریف ایندکس ساده باید از function index استفاده شود

Create index ix_hire_date

    On employees(trunc(hire_date));

Select * from employees e

     Where trunc(hire_date)=date ’2012-07-27’

علاقمندان به مطالعه ادامه مبحث Performance Tuning Index می توانند از طریق لینک زیر فایل مربوطه را دانلود بفرمایند.

دانلود فایل Pdf

دیدگاهتان را بنویسید