设为首页 收藏本站
查看: 487|回复: 0

[经验分享] SQL Server内存故障排除

[复制链接]

尚未签到

发表于 2018-10-12 07:37:15 | 显示全部楼层 |阅读模式
--Bpool statistics  

  
select
  
(cast(bpool_committed as bigint) * 8192)/(1024*1024)  as bpool_committed_mb,
  
(cast(bpool_commit_target as bigint) *8192) / (1024*1024) as bpool_target_mb,
  
(cast(bpool_visible as bigint)* 8192) /(1024*1024) as bpool_visible_mb
  
from sys.dm_os_sys_info
  
go
  

  
-- Get me physical RAM installed and sizeof user VAS
  
select physical_memory_in_bytes/(1024*1024)as phys_mem_mb,
  
virtual_memory_in_bytes/(1024*1024) asuser_virtual_address_space_size
  
from sys.dm_os_sys_info
  
go
  

  
--System memory information
  

  
select total_physical_memory_kb/(1024) asphys_mem_mb,
  
available_physical_memory_kb/(1024) asavail_phys_mem_mb,
  
system_cache_kb/(1024) as sys_cache_mb,
  
(kernel_paged_pool_kb+kernel_nonpaged_pool_kb)/(1024)as kernel_pool_mb,
  
total_page_file_kb/(1024) as total_virtual_memory_mb,
  
available_page_file_kb/(1024) asavailable_virtual_memory_mb,
  
system_memory_state_desc
  
from sys.dm_os_sys_memory
  
go
  

  
-- Memory utilized by SQLSERVR processGetMemoryProcessInfo() API used for this
  
select physical_memory_in_use_kb/(1024) assql_physmem_inuse_mb,
  
locked_page_allocations_kb/(1024) asawe_memory_mb,
  
total_virtual_address_space_kb/(1024) asmax_vas_mb,
  
virtual_address_space_committed_kb/(1024)as sql_committed_mb,
  
memory_utilization_percentage asworking_set_percentage,
  
virtual_address_space_available_kb/(1024)as vas_available_mb,
  
process_physical_memory_low asis_there_external_pressure,
  
process_virtual_memory_low asis_there_vas_pressure
  
from sys.dm_os_process_memory
  
go
  

  
--Reosurce monitor ringbuffer
  
select * from sys.dm_os_ring_buffers
  
where ring_buffer_type like'RING_BUFFER_RESOURCE%'
  
go
  

  
--Memory in each node
  

  
select memory_node_id as node,virtual_address_space_reserved_kb/(1024) as VAS_reserved_mb,
  
virtual_address_space_committed_kb/(1024)as virtual_committed_mb,
  
locked_page_allocations_kb/(1024) aslocked_pages_mb,
  
single_pages_kb/(1024) as single_pages_mb,
  
multi_pages_kb/(1024) as multi_pages_mb,
  
shared_memory_committed_kb/(1024) asshared_memory_mb
  
from sys.dm_os_memory_nodes
  
where memory_node_id != 64
  
go
  

  
--Vas summary
  
with vasummary(Size,reserved,free) as (select size = vadump.size,
  
reserved = SUM(case(convert(int,vadump.base) ^ 0)  when 0 then 0 else 1end),
  
free = SUM(case(convert(int, vadump.base) ^0x0) when 0 then 1 else 0 end)
  
from
  
(select CONVERT(varbinary,sum(region_size_in_bytes)) as size,
  
region_allocation_base_address as base
  
from sys.dm_os_virtual_address_dump
  
where region_allocation_base_address 0x0
  
group by region_allocation_base_address
  
UNION(
  
select CONVERT(varbinary,region_size_in_bytes),
  
region_allocation_base_address
  
from sys.dm_os_virtual_address_dump
  
where region_allocation_base_address = 0x0)
  
)
  
as vadump
  
group by size)
  
select * from vasummary
  
go
  

  
-- Clerks that are consuming memory
  
select * from sys.dm_os_memory_clerks
  
where (single_pages_kb > 0) or(multi_pages_kb > 0)
  
or (virtual_memory_committed_kb > 0)
  
go
  

  
-- Get me stolen pages
  
--
  
select (SUM(single_pages_kb)*1024)/8192 astotal_stolen_pages
  
from sys.dm_os_memory_clerks
  
go
  

  
-- Breakdown clerks with stolen pages
  
select type, name,sum((single_pages_kb*1024)/8192) as stolen_pages
  
from sys.dm_os_memory_clerks
  
where single_pages_kb > 0
  
group by type, name
  
order by stolen_pages desc
  
go
  

  
-- Non-Bpool allocation from SQL Serverclerks
  

  
select SUM(multi_pages_kb)/1024 astotal_multi_pages_mb
  
from sys.dm_os_memory_clerks
  
go
  
-- Who are Non-Bpool consumers
  
--
  
select type, name, sum(multi_pages_kb)/1024as multi_pages_mb
  
from sys.dm_os_memory_clerks
  
where multi_pages_kb > 0
  
group by type, name
  
order by multi_pages_mb desc
  
go
  

  
-- Let's now get the total consumption ofvirtual allocator
  
--
  
selectSUM(virtual_memory_committed_kb)/1024 as total_virtual_mem_mb
  
from sys.dm_os_memory_clerks
  
go
  

  
-- Breakdown the clerks who use virtualallocator
  
select type, name,sum(virtual_memory_committed_kb)/1024 as virtual_mem_mb
  
from sys.dm_os_memory_clerks
  
where virtual_memory_committed_kb > 0
  
group by type, name
  
order by virtual_mem_mb desc
  
go
  

  
-- memory allocated by AWE allocator API'S
  
select SUM(awe_allocated_kb)/1024 astotal_awe_allocated_mb
  
from sys.dm_os_memory_clerks
  
go
  

  
-- Who clerks consumes memory using AWE
  

  
select type, name,sum(awe_allocated_kb)/1024 as awe_allocated_mb
  
from sys.dm_os_memory_clerks
  
where awe_allocated_kb > 0
  
group by type, name
  
order by awe_allocated_mb desc
  
go
  

  
-- What is the total memory used by theclerks?
  
select (sum(multi_pages_kb)+
  
SUM(virtual_memory_committed_kb)+
  
SUM(awe_allocated_kb))/1024
  
from sys.dm_os_memory_clerks
  
go
  
--
  
-- Does this sync up with what the nodethinks?
  
--
  
selectSUM(virtual_address_space_committed_kb)/1024 as total_node_virtual_memory_mb,
  
SUM(locked_page_allocations_kb)/1024 astotal_awe_memory_mb,
  
SUM(single_pages_kb)/1024 astotal_single_pages_mb,
  
SUM(multi_pages_kb)/1024 astotal_multi_pages_mb
  
from sys.dm_os_memory_nodes
  
where memory_node_id != 64
  
go
  
--
  
-- Total memory used by SQL Server throughSQLOS memory nodes
  
-- including DAC node
  
-- What takes up the rest of the space?
  
select(SUM(virtual_address_space_committed_kb)+
  
SUM(locked_page_allocations_kb)+
  
SUM(multi_pages_kb))/1024 astotal_sql_memusage_mb
  
from sys.dm_os_memory_nodes
  
go
  
--
  
-- Who are the biggest cache stores?
  
select name, type,(SUM(single_pages_kb)+SUM(multi_pages_kb))/1024
  
as cache_size_mb
  
from sys.dm_os_memory_cache_counters
  
where type like 'CACHESTORE%'
  
group by name, type
  
order by cache_size_mb desc
  
go
  
--
  
-- Who are the biggest user stores?
  
select name, type,(SUM(single_pages_kb)+SUM(multi_pages_kb))/1024
  
as cache_size_mb
  
from sys.dm_os_memory_cache_counters
  
where type like 'USERSTORE%'
  
group by name, type
  
order by cache_size_mb desc
  
go
  
--
  
-- Who are the biggest object stores?
  
select name, type,(SUM(single_pages_kb)+SUM(multi_pages_kb))/1024
  
as cache_size_mb
  
from sys.dm_os_memory_clerks
  
where type like 'OBJECTSTORE%'
  
group by name, type
  
order by cache_size_mb desc
  
go
  

  
--Which object is really consuming fromclerk
  
select * from sys.dm_os_memory_clerks a
  
,sys.dm_os_memory_objects b
  
where a.page_allocator_address =b.page_allocator_address
  
--group by a.type, b.type
  
order by a.type, b.type
  
go
  

  
--To get the list of 3rd party DLL loadedinside SQL server memory
  
select * from sys.dm_os_loaded_moduleswhere company  'Microsoft Corporation'
  
go
  

  
--Which database page is in my memory
  
select db_name(database_id),(cast(count(*)as bigint)*8192)/1024/1024 as "size in mb" fromsys.dm_os_buffer_descriptors
  
group by db_name(database_id)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-620516-1-1.html 上篇帖子: SQL Server 2008 的无人值守安装 下篇帖子: SQL Server版本信息查询
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表