SQL SERVER-查看内存使用情况

 

--使用内存的各对象
SELECT
    type,
    sum(virtual_memory_reserved_kb) as VM_Reserved,
    sum(virtual_memory_committed_kb) as VM_Committed,
    sum(awe_allocated_kb)  as AWE_Allocated,
    sum(shared_memory_reserved_kb) as SM_Reserved,
    sum(shared_memory_committed_kb) as SM_Committed

from  sys.dm_os_memory_clerks
group by type
order by type 

 

 

--查看buffer pool中的各表所占内存
declare @name  nvarchar(100)
declare @cmd  nvarchar(1000)

declare dbnames cursor for
select name from master.dbo.sysdatabases  where  name='SDS_NONEDI_20190627'
open dbnames
fetch next from dbnames into  @name

while @@FETCH_STATUS=0
begin

print(@name)

set @cmd='select b.database_id,db=db_name(b.database_id),p.object_id,p.index_id,buffer_count=count(*) 
from '+@name+'.sys.allocation_units a,'+@name+'.sys.dm_os_buffer_descriptors b,'+@name+'.sys.partitions p 
where a.allocation_unit_id=b.allocation_unit_id
and a.container_id=p.hobt_id
and b.database_id=db_id('''+@name+''')
group by b.database_id,p.object_id,p.index_id
order by b.database_id,buffer_count desc'

print(@cmd)
exec(@cmd)
fetch next from dbnames into @name
end
close dbnames
deallocate dbnames 
go

 

查询具体的表格或索引

SELECT OBJECT_NAME(309576141)


SELECT * FROM sys.partitions where object_id=309576141

SELECT * FROM SYS.indexes WHERE object_id=309576141

 

posted @ 2019-11-15 16:57  JinweiChang  阅读(1418)  评论(0编辑  收藏  举报