2017-06-06 6 views
0

Wie können wir die meisten gelöschten und am meisten aktualisierten Tabelle in SQL Server 2012 und oberen Ebenen sehen.Meist aktualisierte und gelöschte Tabelle?

Und wie können wir Tabelle sehen, die am meisten io macht?

Werden diese Statistiken in Sql Server zurückgehalten?

+0

In erster Näherung, werden diese Daten in [ 'sys enthalten. dm_db_index_usage_stats'] (https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-index-usage-stats-transact-sql). Dies ist jedoch nur seit dem letzten Start gültig. –

+0

Ich habe diese geschrieben: select OBJECT_NAME (sys.dm_db_index_usage_stats.object_id) als tablo, sys.indexes.name, user_seeks, user_scans, user_lookups, user_updates von sys.dm_db_index_usage_stats inneren sys.indexes auf sys.dm_db_index_usage_stats.object_id = sys beitreten .indexes.object_id und sys.dm_db_index_usage_stats.index_id = sys.indexes.index_id Dabei ist OBJECT_NAME (sys.dm_db_index_usage_stats.object_id) nicht null und DB_ID ('MY_DB') = database_id Auftrag von Tablo –

Antwort

0

Index Fragmentierung sollte helfen - bei Anzahl der Zeilen und die Fragmentierung der Suche:

SELECT 
    B.name AS TableName 
    ,C.name AS IndexName 
    ,C.fill_factor AS IndexFillFactor 
    ,D.rows AS RowsCount 
    ,A.avg_fragmentation_in_percent 
    ,A.page_count 
FROM 
    sys.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,NULL) A 
INNER JOIN 
    sys.objects B 
ON 
    A.object_id = B.object_id 
INNER JOIN 
    sys.indexes C 
ON 
    B.object_id = C.object_id AND A.index_id = C.index_id 
INNER JOIN 
    sys.partitions D 
ON 
    B.object_id = D.object_id AND A.index_id = D.index_id 
WHERE 
    C.index_id > 0 
order by 
    avg_fragmentation_in_percent desc 

PFE: Dank Neeraj Dwivedi bei SQL Zentral

Verwandte Themen