ممکن است برخی پرس و جوهای (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
ORDERBY[Total Cost]DESC
- نتیجه اجرای query مانند تصویر زیر می باشد که پرس و جوهای ساخت Index را از ستون Create_Statement کپی می نماییم و سپس اجرا می کنیم.
- توجه داشته باشید در query تولید شده برای ایجاد index، نام فهرست ها یکتا باشند. در صورت تکراری بودن نام index آن را تغییر دهید.
- همچنین برای اطمینان query قبلی را اجرا نمایید تا در صورتی که Table جدید اضافه شده و یا به درستی index نشده را نشان دهد.
- از آنجا که این موارد پیشنهاد sql server می باشد لذا بهتر است به صورت دوره ای روال را تکرار کنید تا به نتیجه پایدار دست پیدا نمایید.