select
db_name(database_id) as 'database'
,sum(user_seeks) as 'user seeks'
,sum(user_scans) as 'user scans'
,sum(user_lookups) as 'user lookups'
,sum(user_updates) as 'user updates'
,max(last_user_seek) as 'last user seek'
,max(last_user_scan) as 'last user scan'
,max(last_user_lookup) as 'last user lookup'
,max(last_user_update) as 'last user update'
from sys.dm_db_index_usage_stats
group by database_id
select db_name(database_id)
from sys.databases
where database_id not in (select database_id from sys.dm_db_index_usage_stats)
and db_name(database_id) not in ('master','msdb','model','tempdb')
create database heap_db
go
use heap_db
go
create table heap(id int, value varchar(255))
Confirm that there are no indexes on the table:
sp_helpindex 'heap'
insert into heap
values (1,'some'),(2,'values')
And see if this registers (I'm filtering to just the database, otherwise on my test instance lots of other noise is returned by this query)
select
db_name(database_id) as 'database'
,sum(user_seeks) as 'user seeks'
,sum(user_scans) as 'user scans'
,sum(user_lookups) as 'user lookups'
,sum(user_updates) as 'user updates'
,max(last_user_seek) as 'last user seek'
,max(last_user_scan) as 'last user scan'
,max(last_user_lookup) as 'last user lookup'
,max(last_user_update) as 'last user update'
from sys.dm_db_index_usage_stats
where db_name(database_id) = 'heap_db'
group by database_id
select * from heap
And the result is a scan as we might expect:
select
db_name(database_id) as 'database'
,sum(user_seeks) as 'user seeks'
,sum(user_scans) as 'user scans'
,sum(user_lookups) as 'user lookups'
,sum(user_updates) as 'user updates'
,max(last_user_seek) as 'last user seek'
,max(last_user_scan) as 'last user scan'
,max(last_user_lookup) as 'last user lookup'
,max(last_user_update) as 'last user update'
from sys.dm_db_index_usage_stats
where db_name(database_id) = 'heap_db'
group by database_id
use master
go
drop database heap_db
So that means that queries of sys.dm_db_index_stats will pick up heaps as well as indexed databases and can give us a good idea of database usage.
Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.
Comments (2)
Author
Commented:Author
Commented: