نحوه بدست آوردن فهرست های پیشنهادی SQLserver از طریق Query

ممکن است برخی پرس و جوهای (Query) در حال اجرا فاقد index صحیح بر روی Table مورد نظر باشند و با کندی اجرا شده و در نتیجه بر روی سرعت لود سایت تاثیر منفی می گذارد.
 
  •  برای یافتن جداول های فاقد index صحیح می توانید از طریق sql server management studio به دیتابیس خود متصل شوید و query زیر را اجرا نمایید.

 

SET TRANSACTION ISOLATION LEVEL
                        READ UNCOMMITTED
SELECT TOP 200
 ROUND( s.avg_total_user_cost *
       s .avg_user_impact
        * ( s.user_seeks + s. user_scans),0 )
                 AS [Total Cost]
 ,d .[statement] AS [Table Name]
 ,equality_columns
 ,inequality_columns
 ,included_columns
FROM sys .dm_db_missing_index_groups g
INNER JOIN sys. dm_db_missing_index_group_stats s
  ON s .group_handle = g.index_group_handle
INNER JOIN sys. dm_db_missing_index_details d
  ON d .index_handle = g.index_handle

ORDER BY [Total Cost] DESC

  • نتیجه اجرای query مانند تصویر زیر می باشد که پرس و جوهای ساخت Index را از ستون Create_Statement کپی می نماییم و سپس اجرا می کنیم.

 

crtdb

 

  • توجه داشته باشید در query تولید شده برای ایجاد index، نام فهرست ها یکتا باشند. در صورت تکراری بودن نام index آن را تغییر دهید.
  • همچنین برای اطمینان query قبلی را اجرا نمایید تا در صورتی که Table جدید اضافه شده و یا به درستی index  نشده را نشان دهد. 
  • از آنجا که این موارد پیشنهاد sql server می باشد لذا بهتر است به صورت دوره ای روال را تکرار کنید تا به نتیجه پایدار دست پیدا نمایید. 

آخرین بروزرسانی
۱۳ شهریور ۱۳۹۵ 
تعداد کلیک
۱,۲۳۹

ارسال نظر


نام را وارد کنید
پست الکترونیک را وارد کنید
تعداد کاراکتر باقیمانده: 500
نظر خود را وارد کنید