- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQLSERVER排查CPU占用高的情况
SQLSERVER排查CPU占用高的情况今天中午,有朋友叫我帮他看一下数据库,操作系统是Windows2008R2 ,数据库是SQL2008R2 64位64G内存,16核CPU硬件配置还是比较高的,他说服务器运行的是金蝶K3软件,数据库实例里有多个数据库他说是这几天才出现的,而且在每天的某一个时间段才会出现CPU占用高的情况内存占用也很高,占用了30个G华丽的分割线一般排查都是用下面的脚本,一般会用到三个视图sys.sysprocesses ,dm_exec_sessions ,dm_exec_requests1USE master2GO3--如果要指定数据库就把注释去掉4SELECT*FROM sys.[sysprocesses]WHERE[spid]50--AND DB_NAME([dbid])=gposdb5SELECTCOUNT(*) FROM[sys].[dm_exec_sessions]WHERE[session_id]50看一下当前的数据库用户连接有多少然后使用下面语句看一下各项指标是否正常,是否有阻塞,这个语句选取了前10个最耗CPU时间的会话 1SELECTTOP10 2[session_id], 3[request_id], 4[start_time]AS开始时间, 5[status]AS状态, 6[command]AS命令, 7dest.[text]ASsql语句, 8DB_NAME([database_id]) AS数据库名, 9[blocking_session_id]AS正在阻塞其他会话的会话ID,10[wait_type]AS等待资源类型,11[wait_time]AS等待时间,12[wait_resource]AS等待的资源,13[reads]AS物理读次数,14[writes]AS写次数,15[logical_reads]AS逻辑读次数,16[row_count]AS返回结果行数17FROM sys.[dm_exec_requests]AS der 18CROSS APPLY 19 sys.[dm_exec_sql_text](der.[sql_handle]) ASdest20WHERE[session_id]50ANDDB_NAME(der.[database_id])=gposdb21ORDERBY[cpu_time]DESC如果想看具体的SQL语句可以执行下面的SQL语句,记得在SSMS里选择以文本格式显示结果1--在SSMS里选择以文本格式显示结果2SELECTTOP103dest.[text]ASsql语句4FROM sys.[dm_exec_requests]AS der 5CROSS APPLY 6 sys.[dm_exec_sql_text](der.[sql_handle]) ASdest7WHERE[session_id]508ORDERBY[cpu_time]DESC模拟了一些耗CPU时间的动作华丽的分割线还有查看CPU数和user scheduler数和最大工作线程数,检查worker是否用完也可以排查CPU占用情况1--查看CPU数和user scheduler数目2SELECTcpu_count,scheduler_countFROMsys.dm_os_sys_info3--查看最大工作线程数4SELECTmax_workers_countFROMsys.dm_os_sys_info查看机器上的所有schedulers包括user 和system通过下面语句可以看到worker是否用完,当达到最大线程数的时候就要检查blocking了对照下面这个表各种CPU和SQLSERVER版本组合自动配置的最大工作线程数CPU数???????????????? 32位计算机??????????????????????? 64位计算机=4??????????????????? ?256???????????????????????????????????512? 8??????????????????????? 288?????????????????????????????? ????576?16?????????????????????? 352????????????????????????????????? ?704?32?????????????????????? 480????????????????????????????????? ?9601SELECT2scheduler_address,3scheduler_id,4cpu_id,5status,6current_tasks_count,7current_workers_count,active_worke
文档评论(0)