سبد خرید (0)

تبلیغات

فرآیندهای نگهداری ایندکس ها

فرآیندهای نگهداری ایندکس ها در پایگاه داده

برای بالا بردن کارایی یا Performance پایگاه داده، یکی دیگر از کارهایی که مرتب و منظم باید انجام شود، فرآیندهای نگهداری ایندکس هاست و شامل موارد زیر می شود:

  1. پیدا کردن ایندکس های تکراری یا Duplicate Index
  2. پیدا کردن ایندکس های بدون استفاده یا Unused Index
  3. تعریف ایندکس های مناسب که البته ایجاد نشده اند یا Missing Index

در این مطلب و دو آموزش بعدی سعی می کنیم هر کدام از موارد بالا را به اختصار توضیح دهیم:


1- پیدا کردن ایندکس های تکراری یا Duplicate Index

اگر استراتژی تعریف ایندکس ها در پایگاه داده به سمتی برود که ایندکس های تکراری تعریف شود، باید آنها را پیدا کرده و حذف نمود.

ممکن است این سوال در ذهنتان پیش بیاید که چرا باید ایندکس های تکراری را پیدا و حذف کرد؟

همان طور که می دانید نگهداری اینکدس ها هزینه بر است یعنی مثلاً زمان Update و یا Insert و یا Delete باید ایندکس ها به روز رسانی شوند.

توجه: حذف ایندکس های تکراری، سرعت Delete/Insert/Update را افزایش می دهد.

مثال: تصور فرمایید دو ایندکس مختلف با نام های Index 1 و Index 2 بصورت زیر تعریف شده است:

مثال ایندکس تکراری

Index 1: Col A , Col B , Col C 
Index 2: Col A , Col B

در مثال بالا، ایندکس شماره 1 (Index 1)، ایندکس شماره 2 (Index 2) را نیز پوشش می دهد. در واقع اگر کوئری ای داشته باشیم که از Index 2 استفاده می کند، می توان همان کوئری را به سمت Index 1 برد.


مثال عملی مربوط به ایندکس های تکراری

Demo

USE tempdb
GO
--بررسی جهت وجود جدول
IF OBJECT_ID('SalesOrderHeader2')>0
DROP TABLE SalesOrderHeader2
GO
--تهیه کپی از جدول
SELECT * INTO SalesOrderHeader2 FROM AdventureWorks2012.Sales.SalesOrderHeader
GO
--ایجاد یک کلاستر ایندکس
CREATE CLUSTERED INDEX Clustered_Index ON SalesOrderHeader2(SalesOrderID)
GO
CREATE INDEX IX01 ON SalesOrderHeader2(CustomerID)
CREATE INDEX IX02 ON SalesOrderHeader2(CustomerID,OrderDate)
CREATE INDEX IX03 ON SalesOrderHeader2(OrderDate,CustomerID)
GO

در مثال بالا ایندکس IX01 در IX02 پوشش داده می شود...!


در ادامه بحث Duplicate Index خواهید دید ...!

با خرید جلسه 6 از بسته آموزشی "افزایش کارایی پایگاه داده" موارد زیر را خواهید دید:

  1. در یک پایگاه داده حجیم چگونه ایندکس های تکراری را پیدا کنیم؟
  2. از بین DMV یا DMF های موجود کدام یک می توانند ما را برای پیدا کردن ایندکس های تکراری یاری دهند؟
  3. آیا کوئری ای وجود دارد که بصورت خودکار ایندکس های تکراری را مشخص کرده و دستور حذف یا Drop آنها را برای ما ایجاد کند؟

دسترسی به موارد آموزشی بالا در بسته خریداری شده

  • شماره جلسه: 6
  • نام فایل ویدئو: 01
  • فرمت فایل: mp4.

نقطه شروع بحث بالا (Duplicate Index) در ویدئو: 2:50


برای خرید و دانلود کامل آموزش پیشرفته SQL Server کلیک کنید.

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت پرداخت آنلاین - بانک پارسیان پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان