日期:2014-05-17 浏览次数:20566 次
select
type,
sum(virtual_memory_reserved_kb) as [VM Reserved], --从buffer pool中保留的大小
sum(virtual_memory_committed_kb) as [VM Committed], --从buffer pool中提交的大小
--是Buffer Pool里的Stolen Memory的大小.在Buffer Pool中通过Stolen分配的,也就是直接Commit分配的内存量.
sum(single_pages_kb) as [SinlgePage Allocator],
--分配的多页内存量(KB),是使用内存节点的多页分配器分配的内存量。此内存在buffer pool外分配,是SQL Server自己的代码使用的MemToLeave大小。
sum(multi_pages_kb) as [MultiPage Allocator],
--内存Clerk使用地址窗口化扩展插件(AWE)分配的内存量。当启用AWE时,只有缓冲池Clerk(MEMORYCLERK_SQLBUFFERPOOL)使用此机制,不可为空值。
--可以由buffer pool使用的内存量
sum(awe_allocated_kb) as [AWE Allocated],
sum(shared_memory_reserved_kb) as [SM Reserved], --内存Clerk保留的共享内存量,保留给共享内存和文件映射使用.
sum(shared_memory_committed_kb) as [SM Committed] --内存Clerk提交的共享内存量,和上面的字段一起可以追踪Shared Memory的大小.
from sys.dm_os_memory_clerks
group by type
order by type
--3.3 使用DMV分析SQL Server启动以来做read最多的语句
--3.3.1 按照物理读的页面数排序,前50名。
SELECT TOP 50
qs.total_physical_reads,
qs.execution_count,
qs.total_physical_reads /qs.execution_count as [Avg Physical Read IO],
qs.sql_handle,
qs.plan_handle,
qs.statement_start_offset, --以字节为单位,但是text字段为nvarchar类型,也就是一个字符占用2个字节
qs.statement_end_offset,
qt.dbid,
dbname=db_name(qt.dbid),
qt.objectid, --只有procedure,trigger,view,function才会有对象id
SUBSTRING( qt.text,
qs.statement_start_offset / 2,
&