Sposób nr 1
SELECT max(create_date), max(modify_date) FROM SYS.tables
Zapytanie zwróci datę utworzenia ostatniej tabeli lub date jej modyfikacji np. dodania kolumny. A przecież te czynności nie są wykonywane codziennie. Kiedy baza okrzepnie tworzenie tabel odbywa się rzadko. Dlatego wolelibyśmy informację o tym, kiedy rekordy były ostatnio modyfikowane/dodawane, a może nawet czytane, dlatego:
Sposób nr 2
USE <your_db_name> SELECT OBJECT_NAME(object_id) AS TableName, last_user_update as LastAction, * FROM sys.dm_db_index_usage_stats u WHERE database_id = db_id(db_name())Zapytanie korzysta z widoku sys.dm_db_index_usage_stats, który zawiera informacje o wykorzystaniu każdego indeksu w baize danych. Zobaczysz tu ile razy indeks był skanowany, przeszukiwany przez seek lub modyfikowany przez polecenia INSERT/UPDATE/DELETE. Dodatkowo znajdziesz też datę i godzinę kiedy te operacje były ostatnio wykonywane.
Jeżeli więc znajdziesz tu zera i NULL-owe daty, tzn. że od momentu włączenia serwera nikt z indeksów należących do tabel nie korzystał.
Pamiętaj jednak, że ten widok traci swoją zawartość przy każdorazowym włączeniu SQL serwera oraz przy odłączaniu/przyłączaniu bazy danych (np. w SQL Server Express jeżeli baza danych ma opcję AUTO_CLOSE ON)
Pod adresem
można znaleźć ładne zapytanie, które dla każdej tabeli zwróci jedną datę ostatniego dostępu:
WITH LastActivity (ObjectID, LastAction) AS ( SELECT object_id AS TableName, last_user_seek as LastAction FROM sys.dm_db_index_usage_stats u WHERE database_id = db_id(db_name()) UNION SELECT object_id AS TableName, last_user_scan as LastAction FROM sys.dm_db_index_usage_stats u WHERE database_id = db_id(db_name()) UNION SELECT object_id AS TableName, last_user_lookup as LastAction FROM sys.dm_db_index_usage_stats u WHERE database_id = db_id(db_name()) ) SELECT OBJECT_NAME(so.object_id) AS TableName, MAX(la.LastAction) as LastSelect FROM sys.objects so LEFT JOIN LastActivity la on so.object_id = la.ObjectID WHERE so.type = 'U’ AND so.object_id > 100 GROUP BY OBJECT_NAME(so.object_id) ORDER BY OBJECT_NAME(so.object_id)No a jeśli chcesz wiedzieć coś więcej to:
Sposób nr 3
Założyć audyt lub trace