SQL Server performans çalışmalarında sorulan soruların nerede ise başında “hangi tabloya ne zaman erişim sağlandı?” sorusudur. Aşağıdaki sql sorgusu tabloya ne zaman erişim sağlandığını gösterir.
SELECT DB_NAME(ius.[database_id]) AS [Database], OBJECT_NAME(ius.[object_id]) AS [TableName], MAX(ius.[last_user_lookup]) AS [last_user_lookup], MAX(ius.[last_user_scan]) AS [last_user_scan], MAX(ius.[last_user_seek]) AS [last_user_seek], MAX(ius.[last_user_update]) AS [last_user_update] FROM sys.dm_db_index_usage_stats AS ius WHERE ius.[database_id] = DB_ID() --AND ius.[object_id] = OBJECT_ID('YourTableName') GROUP BY ius.[database_id], ius.[object_id]
Sorgu sonucunda gelen kolonların açıklaması:
- last_user_lookup: Index olmayan bir kolon üzerinde where şartı ile sorgu çalıştığı zaman
- last_user_scan: Tabloyu sıralı okuduğu zaman, “select * from Table” sorgusu gibi
- last_user_seek: Tablodan tek değer okunduğu zaman, “select * from Table where Id = 5” sorgusu gibi