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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM