Execute below to find the busiest table in database and check for opportunity to create index.
SELECT TOP 25 SERVERPROPERTY ('servername') AS [Server_Name],
DB_NAME([database_id]) AS [Database_Name],
SCHEMA_NAME([schema_id]) + '.'+ OBJECT_NAME([ddios].[object_id]) AS [Table_Name],
FORMAT([row_lock_count], 'N0') AS [Row_Lock_Count],
FORMAT([page_lock_count], 'N0') AS [Page_Lock_Count],
FORMAT([row_lock_count] + [page_lock_count], 'N0') AS [Number_Of_Locks],
FORMAT([row_lock_wait_count], 'N0') AS [Row_Block_Count],
FORMAT([page_lock_wait_count], 'N0') AS [Page_Block_Count],
FORMAT([row_lock_wait_count] + [page_lock_wait_count], 'N0') AS [Number_Of_Blocks],
--[row_lock_wait_in_ms], [page_lock_wait_in_ms],
FORMAT([row_lock_wait_in_ms] + [page_lock_wait_in_ms], 'N0') AS [Block_Wait_Time_ms],
([row_lock_wait_in_ms] + [page_lock_wait_in_ms])/CAST(([row_lock_count] + [page_lock_count]) AS FLOAT) AS [Block_Wait_Time_ms_Per_Lock],
[Index_ID]
FROM [sys].[dm_db_index_operational_stats](DB_ID(),NULL,NULL,NULL) AS [ddios]
INNER JOIN [sys].[tables] AS [t]
ON [ddios].[object_id] = [t].[object_id]
WHERE ([row_lock_wait_count] + [page_lock_wait_count]) <> 0
ORDER BY ([row_lock_wait_in_ms] + [page_lock_wait_in_ms]) desc
No comments:
Post a Comment