آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

اطمینان از ایندکس شدن تمامی ستونها

دوره های مرتبط با این مقاله

اطمینان از ایندکس شدن تمامی ستونها

وقتی که یک ایندکس می تواند به اجرای یک query و ستون هایی که JOIN predicate شما را تشکیل می دهند، کمک کند سناریوهای مختلفی وجود دارد و مسئله ی مهمی می باشد.

توضیحات:

برای اینکه این نکته توضیح دهیم، اجازه بدهید نگاهی به یک query ساده داشته باشیم که جدول های Parent و Child را به یکدیگر متصل می کند. ما با وارد کردن یک فیلترParentID به عبارت WHERE، مجموعه ی نتیجه را کوچک نگاه می داریم. در اینجا می توانید وضعیت را مشاهده کنید:

SELECT * ‎
‎  FROM [dbo].[Parent] P INNER JOIN
‎       [dbo].[Child] C ON P.ParentID=C.ParentID‎
WHERE P.ParentID=32433‎

با مشاهده ی explain plan برای این query، متوجه می شویم که SQL Optimizer باید یک index scan روی جدول Child انجام دهد، گرچه ما فقط به دنبال یک ParentID خاص از جدول Parent هستیم.

آموزش SQL Server

اجازه بدهید یک ایندکس روی ستون اتصال، Child.ParentID، اضافه کنیم وتاثیر آن را روی explain plan مشاهده کنیم. در اینجا وضعیت SQL را مشاهده می کنید.

CREATE NONCLUSTERED INDEX idxChild_ParentID
ON [dbo].[Child] ([ParentID])‎
 
‎-- cleanup statements
DROP INDEX Child.idxChild_ParentID

با استفاده از همان query در بالا، اگرexplain plan را دوباره تولید کردیم، پس از افزودن ایندکس در زیر مشاهده می کنیم که اکنون SQL Optimizer با استفاده از یک index seek، قادر به دسترسی به جدول Child می باشد که خیلی سریعتر اجرا شده و از منابع کمتری استفاده می کند.

آموزش SQL Server
CPU
Reads
Writes
Duration
No Index
110
14217
0
110
Index
0
63
0
0

هنگام افزودن ایندکس ها به ستون های پیوسته، نکته ی دیگری را نیز باید متذکر شویم. به عنوان یک خط مشی کلی، من معمولا با نمایه سازی (indexing) همه ی ستون های کلید خارجی شروع می کنم و فقط اگر ببینم تاثیر منفی دارند، آنها را حذف می کنم. این تمرین به این خاطر پیشنهاد داده می شود که اغلب اوقات ستون ها هستند که باعث اتصال جدول ها می شوند و شما تمایل دارید یک اجرای کاملا خوب از چنین ستون های ایندکسشده ای مشاهده کنید.

  • 2346
  •    680
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .