数据库内存结构
数据库从操作系统申请到的内存可分为两部分:
1.缓存池内存(数据页和空闲页)
2.非缓存池内存(线程/DLL/连接服务器等)Note:通过服务器实例属性设置的最大/最小服务器内存是指缓存池内存
Note:Express只能使用1G内存数据库内存可分为三个层级
Level1:内存节点(Memory Node),提供低级的分配器的接口和实现,在NUMA中内存节点和CPU节点对应,只有内存CLERK可以访问内存节点;Level2:由内存CLERK/内存缓存/内存池三部分组成,内存CLERK访问内存节点的接口来分配内存。Level3:内存对象,SQL SERVER组件使用内存对象,而不使用Memory CLERK,内存对象使用内存CLERK的页分配器接口来分配页。数据库内存按申请大小分成两部分
1.申请小于等于8KB为一单位的内存,这些内存被用于缓存(singlepage allocator)
2.申请大于8KB为一单位的内存,这些内存主要用于SQL CLR,Linked Server and backup buffer and others. 这些内存称为Multi-Page OR MemToLeave(multioPage allocator)MemToLeave保留内存=((CPU数量-4)+256)*0.5+256 约等于384MB查看Memory CLERK的内存使用情况可调用sys.dm_os_memory_clerks视图
查看Buffer pool的内存使用情况可调用sys.dm_os_buffer_descriptors视图查看各数据库缓存情况
SELECT
DB_NAME(DS.database_id) AS DatabaseName,
CAST(COUNT(1) *8.0/1024.0 AS INT) UsedMB
FROM sys.dm_os_buffer_descriptors DS
GROUP BY database_id
数据库使用的总内存:主要由buffer pool中用于缓存的内存+从Buffer pool中借(stolen)的CLERK singlePage的内存+MemToLeave(MultiPage)的内存SELECT
'SinglePage(MB)',
CAST(SUM(C.single_pages_kb)/1024.0 AS NUMERIC(10,2))
FROM sys.dm_os_memory_clerks C
UNION ALL
SELECT
'MemToLeave(MB)',
CAST(SUM(C.multi_pages_kb)/1024.0 AS NUMERIC(10,2))
FROM sys.dm_os_memory_clerks C
UNION ALL
SELECT
'Buffer Pool(MB)',
CAST(COUNT(1) *8.0/1024.0 AS NUMERIC(10,2)) AS UsedMB
FROM sys.dm_os_buffer_descriptors DS或者使用性能计数器来查看SQLServer占用的内存
SELECT * FROM sys.sysperfinfo P
WHERE P.object_name LIKE 'SQLServer:Memory Manager%'
AND( P.counter_name LIKE 'Target Server Memory (KB)%'
OR P.counter_name LIKE 'Total Server Memory (KB)%')
Memory Object:
本质上是一个堆,由Page allocator进行分配,使用sys.dm_os_memory_objects来查看,使用page_allocator_address来与标识memory clerk
- 数据库内存结构
- [转]mssql中得到库里所有的表名,以及表的结构(列名和数据类型)
- 结构(struct)
- 利用XML转换为table实现在SQL参数中传递表结构
- 结构之法 算法之道 博客地址 --- 对各种面试题的收集整理
- Java基础入门(四)选择结构
- oracle中跳出循环结构的exit,continue和return
- oracle 删除级联树形结构数据
- wordpress模板文件结构超详解
- 2. 继续Jinja2——变量过滤器、控制结构
- noip2014 联合权值 (树形结构)
- 数据结构 - 求二叉树中结点的最大距离(C++)
- Unix环境编程——socket编程(常用函数、结构)
- 普林斯顿结构 VS 哈佛结构
- 数据结构与算法之大数据处理
- inet 框架结构
- Windows中进程的内存结构
- SEO学习(十一)——网站结构
- 数据结构知识一个基础
- JAVA学习笔记 -- 数据结构