نحوه بدست آوردن فهرست های پیشنهادی SQLserver از طریق Query
ممکن است برخی پرس و جوهای (Query) در حال اجرا فاقد index صحیح بر روی Table مورد نظر باشند و با کندی اجرا شده و در نتیجه بر روی سرعت لود سایت تاثیر منفی می گذارد.
برای یافتن جداول های فاقد index صحیح می توانید از طریق sql server management studio به دیتابیس خود متصل شوید و query زیر را اجرا نمایید.
SETTRANSACTIONISOLATIONLEVEL
READUNCOMMITTED
SELECTTOP200
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
FROMsys.dm_db_missing_index_groupsg
INNERJOINsys.dm_db_missing_index_group_statss
ONs.group_handle=g.index_group_handle
INNERJOINsys.dm_db_missing_index_detailsd
ONd.index_handle=g.index_handle
ORDERBY[Total Cost]DESC
نتیجه اجرای query مانند تصویر زیر می باشد که پرس و جوهای ساخت Index را از ستون Create_Statement کپی می نماییم و سپس اجرا می کنیم.
توجه داشته باشید در query تولید شده برای ایجاد index، نام فهرست ها یکتا باشند. در صورت تکراری بودن نام index آن را تغییر دهید.
همچنین برای اطمینان query قبلی را اجرا نمایید تا در صورتی که Table جدید اضافه شده و یا به درستی index نشده را نشان دهد.
از آنجا که این موارد پیشنهاد sql server می باشد لذا بهتر است به صورت دوره ای روال را تکرار کنید تا به نتیجه پایدار دست پیدا نمایید.