-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathListTablesLastAccessed.sql
More file actions
72 lines (69 loc) · 3.12 KB
/
ListTablesLastAccessed.sql
File metadata and controls
72 lines (69 loc) · 3.12 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/************************************************************************************************
================================================================================
DESCRIPTION:
--------------------------------------------------------------------------------
List the tables that have been access, along with the last date and time that access occured
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([schemaname],
object_id,
[tablename],
[lastaction],
[type])
AS (
SELECT [ss].[name] AS [schemaname],
[o].object_id AS object_id,
OBJECT_NAME([o].object_id) AS [tablename],
[last_user_seek] AS [lastaction],
[type]
FROM [sys].[dm_db_index_usage_stats] AS [u]
LEFT JOIN [sys].[objects] AS [o] ON [u].object_id = [o].object_id
LEFT JOIN [sys].[schemas] AS [ss] ON [o].schema_id = [ss].schema_id
WHERE [database_id] = DB_ID(DB_NAME())
UNION
SELECT [ss].[name] AS [schemaname],
[o].object_id AS object_id,
OBJECT_NAME([o].object_id) AS [tablename],
[last_user_scan] AS [lastaction],
[type]
FROM [sys].[dm_db_index_usage_stats] AS [u]
LEFT JOIN [sys].[objects] AS [o] ON [u].object_id = [o].object_id
LEFT JOIN [sys].[schemas] AS [ss] ON [o].schema_id = [ss].schema_id
WHERE [database_id] = DB_ID(DB_NAME())
UNION
SELECT [ss].[name] AS [schemaname],
[o].object_id AS object_id,
OBJECT_NAME([o].object_id) AS [tablename],
[last_user_lookup] AS [lastaction],
[type]
FROM [sys].[dm_db_index_usage_stats] AS [u]
LEFT JOIN [sys].[objects] AS [o] ON [u].object_id = [o].object_id
LEFT JOIN [sys].[schemas] AS [ss] ON [o].schema_id = [ss].schema_id
WHERE [database_id] = DB_ID(DB_NAME()))
SELECT [la].[schemaname],
object_id,
[tablename],
[la].[type],
MAX([la].[lastaction]) AS [lastselect]
FROM [lastactivity] AS [la]
WHERE [la].[type] = 'U'
AND [la].object_id > 100
GROUP BY [la].[schemaname],
object_id,
[tablename],
[la].[type]
ORDER BY [lastselect] ASC;