-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathListTablesNotAccessed.sql
More file actions
50 lines (47 loc) · 2.44 KB
/
ListTablesNotAccessed.sql
File metadata and controls
50 lines (47 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/************************************************************************************************
================================================================================
DESCRIPTION:
--------------------------------------------------------------------------------
List all of the database tables which have not been accessed. Tables with a NULL
have not been accessed sicne the last SQL Server restart (DMV clear)
HISTORY:
--------------------------------------------------------------------------------
Date: Developer: Description:
--------------------------------------------------------------------------------
* * Created
--------------------------------------------------------------------------------
NOTES:
--------------------------------------------------------------------------------
THIS SCRIPT/CODE ARE PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED.
LIMITED TESTING HAS BEEN PERFORMED ON THIS SCRIPT/CODE AND THEREFORE THE AUTHOR DOES NOT WARRANT
THAT ANY SCRIPT/CODE IS BUG OR ERROR-FREE. IT IS EXPECTED THAT ANY SCRIPT/CODE UNDERGO YOUR OWN
TESTING AND/OR VALIDATION BEFORE USAGE ON ANY CRITICAL SQL SERVER PLATFORM.
THIS SCRIPT MAY BE A COLLECTION OF MY OWN CODE COLLATED OVER MANY YEARS, OR OTHER CODE I HAVE
LOCATED ON THE WEB WITH AN UNKNOWN ORIGIN. WHERE CODE HAS BEEN IDENTIFIED IT WILL BE CITED.
================================================================================
************************************************************************************************/
WITH lastactivity([objectid],
[lastaction])
AS (
SELECT object_id AS [tablename],
[last_user_seek] AS [lastaction]
FROM [sys].[dm_db_index_usage_stats] AS [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] AS [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] AS [u]
WHERE [database_id] = DB_ID(DB_NAME()))
SELECT OBJECT_NAME([so].object_id) AS [tablename],
MAX([la].[lastaction]) AS [lastselect]
FROM [sys].[objects] AS [so]
LEFT JOIN [lastactivity] AS [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);