--ref: http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1334856,00.html --蠏谿 豢 . use master; create table #temp ( db_name nvarchar(255) , schema_name nvarchar(255) , table_name nvarchar(255) , memory_space_MB int , storage_space_MB bigint , percentage_of_object_in_memory numeric(18,2) ) declare @dbname nvarchar(500) , @sql nvarchar(4000) declare cur cursor for select name from sys.sysdatabases; open cur; fetch next from cur into @dbname while @@fetch_status not in (-1, -2) begin set @sql = ' use ' + @dbname + '; select db_name() dbname , schema_name(sys.tables.schema_id) schemaname , sys.tables.name tablename , sum(a.page_id)*8/1024 as mmb , sum(sys.allocation_units.data_pages)*8/1024 as smb , case when sum(sys.allocation_units.data_pages) <> 0 then sum(a.page_id)/cast(sum(sys.allocation_units.data_pages) as numeric(18,2)) end as ''obj_in_memory'' from ( select database_id, allocation_unit_id, count(page_id) page_id from sys.dm_os_buffer_descriptors group by database_id, allocation_unit_id) a inner join sys.allocation_units on a.allocation_unit_id = sys.allocation_units.allocation_unit_id inner join sys.partitions on (sys.allocation_units.type in (1,3) and sys.allocation_units.container_id = sys.partitions.hobt_id) or (sys.allocation_units.type = 2 and sys.allocation_units.container_id = sys.partitions.partition_id) inner join sys.tables on sys.partitions.object_id = sys.tables.object_id and sys.tables.is_ms_shipped = 0 where a.database_id = db_id() group by schema_name(sys.tables.schema_id), sys.tables.name '; insert #temp exec(@sql); fetch next from cur into @dbname end select db_name , schema_name , table_name , sum(memory_space_MB) memory_space_MB , sum(storage_space_MB) storage_space_MB , sum(percentage_of_object_in_memory) percentage_of_object_in_memory from #temp where memory_space_MB > 0 group by db_name , schema_name , table_name union all select 'TOTAL' , '' , '' , sum(memory_space_MB) memory_space_MB , sum(storage_space_MB) storage_space_MB , sum(percentage_of_object_in_memory) percentage_of_object_in_memory from #temp where memory_space_MB > 0 drop table #temp close cur; deallocate cur;