refer:

https://techcommunity.microsoft.com/t5/azure-sql/monitor-cpu-usage-on-sql-server-and-azure-sql/ba-p/680777

https://www.cnblogs.com/lyhabc/archive/2013/06/12/3133273.html (step by step)

https://www.360kuai.com/mob/transcoding?url=9d1f5d2101d40ebc7&cota=4&kuai_so=1&sign=360_e39369d1

https://stackoverflow.com/questions/1289558/how-much-ram-is-sql-server-actually-using

https://stackoverflow.com/questions/7197574/script-to-kill-all-connections-to-a-database-more-than-restricted-user-rollback

https://stackoverflow.com/questions/941763/list-the-queries-running-on-sql-server

如何清理SQL SERVER内存解决内存占用高的问题

通常 CPU high 和缺 ram 有密切关系.

start > administrative tools > performance > open resource monitor > 这里看到 ram 和 cpu 的 detail

OS ram 多, 不代表 sql 可以用得多. 要去 server > properties > memory 看 max ram 是多少.

解决方法是定时 clear ram. 比如 定时 restart server (当然指定 clear SQL Server ram 会更理想, 但如果嫌麻烦, restart start 比较容易实现)

常用语句

0. 查 cpu, connection

<=50 都是 sa background job (最好也看一下)

USE master
GO
SELECT * FROM sys.[sysprocesses] WHERE [spid] > 50 --AND DB_NAME([dbid])='gposdb'
SELECT COUNT(*) FROM [sys].[dm_exec_sessions] WHERE [session_id]>50

1. 查 connections

SELECT
DB_NAME(DBID) AS DataBaseName
,COUNT(DBID) AS NumberOfConnections
,LogiName
FROM sys.sysprocesses
WHERE DBID > 0
GROUP BY DBID, LogiName

2. sum connect count

select SUM(NumberOfConnections) from (
SELECT
DB_NAME(DBID) AS DataBaseName
,COUNT(DBID) AS NumberOfConnections
,LogiName
FROM sys.sysprocesses
WHERE DBID > 0
GROUP BY DBID, LogiName
) a

3. 查 ram usage

SELECT
(total_physical_memory_kb/1024) AS Total_OS_Memory_MB,
(available_physical_memory_kb/1024) AS Available_OS_Memory_MB,
ROUND(100 - CAST(((available_physical_memory_kb/1024) * 100.0/ (total_physical_memory_kb/1024)) AS FLOAT),2) AS Usage_Percentage
FROM sys.dm_os_sys_memory; SELECT
(physical_memory_in_use_kb/1024) AS Memory_used_by_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_by_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;

sql server high cpu 排查的更多相关文章

  1. 【SQL Server】SQL Server占用CPU使用率100%的解决方法

    原文:[SQL Server]SQL Server占用CPU使用率100%的解决方法 近日,帮一个客户解决了服务器CPU占用率高达100%的问题. 以前做的一个某污水处理厂自控系统项目,客户反映其自控 ...

  2. SQL Server服务器CPU爆高解决

    昨天下午,测试反映trunk测试环境的数据库CPU一直100%,一开始以为是病毒,内网这段时间老是有个挖矿的病毒,查了一下被隔离了,但是数据库还是慢,停掉SQL server的服务CPU降下来,启动S ...

  3. sql server 的cpu使用率过高的分析

    有哪些SQL语句会导致CPU过高? 1.编译和重编译 编译是 Sql Server 为指令生成执行计划的过程.Sql Server 要分析指令要做的事情,分析它所要访问的表格结构,也就是生成执行计划的 ...

  4. SQL Server 解决CPU 高占用的一般step

    第一步: 看这些CPU是不是SQL Server用的. 第二步: 确定SQL Server 有没有引发17883\17884错误 第三步: 找出使用CPU最高的语句进行优化.(sys.dm_exec_ ...

  5. SQL Server 查看CPU情况

    --CPU相关视图 SELECT * FROM sys.dm_os_sys_info SELECT * FROM sys.dm_exec_sessions SELECT * FROM sys.sysp ...

  6. SQL Server 占用CPU较高的解决方法

    触发原因:月底系统结账的时候对ERP的操作较多,有用户反馈系统之间的数据传输很久没有同步.随即到服务器上查看,没有发现有程序导致的问题,看了一下CPU的使用率,发现SQL Server占用率在百分之九 ...

  7. SQL Server 造成cpu 使用率高的 6 原因

    第一种: 编译和重编译执行计划. 第二种: 排序与聚合. 第三种: 表格连接操作. 第四种: max degree of parallelism. 第五种: max worker threads. 第 ...

  8. SQL SERVER占用CPU过高排查和优化

    操作系统是Windows2008R2 ,数据库是SQL2014 64位. 近阶段服务器出现过几次死机,管理员反馈机器内存使用率100%导致机器卡死.于是做了个监测服务器的软件实时记录CPU数据,几日观 ...

  9. SQL SERVER占用CPU过高优化

    操作系统是Windows2008R2 ,数据库是SQL2014 64位. 近阶段服务器出现过几次死机,管理员反馈机器内存使用率100%导致机器卡死.于是做了个监测服务器的软件实时记录CPU数据,几日观 ...

  10. SQL SERVER占用CPU过高优化S

    https://www.cnblogs.com/yuekong2010/p/6628001.html 然后使用下面语句看一下各项指标是否正常,是否有阻塞,正常情况下搜索结果应该为空. 1 SELECT ...

随机推荐

  1. 如何解决 CentOS 7 官方 yum 仓库无法使用的问题

    一.背景介绍 2024 年 7 月 1 日,在编译基于 CentOS 7.6.1810 镜像的 Dockerfile 过程中,执行 yum install 指令时,遇到了错误:Could not re ...

  2. [NOIP2008 提高组] 笨小猴(洛谷题号P1125)

    [NOIP2008 提高组] 笨小猴 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描 ...

  3. docker 容器卷

    创建各种卷 [root@docker ~]# docker volume create mqy-vo101 mqy-vo101 [root@docker ~]# docker inspect mqy- ...

  4. Jmeter函数助手7-timeShift

    timeShift函数用于获取移动时间变化后的指定格式时间. Format string for DateTimeFormatter (optional) (default unix timestam ...

  5. 【Vue】二维码生成

    按组长提供的样例,功能比较相符合的是这个博客: https://www.jianshu.com/p/8d59107e1992 这个博客引用的是这篇文章: https://blog.csdn.net/w ...

  6. 【VMware】 桥接网路发现无法Ping通原因

    解决方案参考: https://blog.csdn.net/weixin_33856370/article/details/92420910 设置好的同网段的三台虚拟机这次开机连不上网了 仔细发现VM ...

  7. python科学计算:加速库numba —— 安装和试用

    安装(anaconda环境下) conda install numba Demo代码: from numba import jit from numpy import arange import nu ...

  8. Two Sided Cards 题解

    前言 五一网课的例题,但是网上没有详细的题解(真的连题解都找不到啊),所以来写一篇,就当攒 RP 了.题目可以在这里提交.原题是 TopCoder - 10947,但是有了账号也交不了? 题目简述 有 ...

  9. 7月新特性 | 软件开发生产线CodeArts发布多项新特性等你体验!

    华为云软件开发生产线CodeArts是一站式.全流程.安全可信的云原生DevSecOps平台,覆盖需求.开发.测试.部署.运维等软件交付全生命周期环节,为开发者打造全云化研发体验.2024年7月,Co ...

  10. RabbitMq高级特性之死信队列 通俗易懂 超详细 【内含案例】

    RabbitMq高级特性之死信队列 又称 死信交换机 DLX 介绍 当消息成为 Dead message 后,会重新发送到另一个交换机,这个交换机就是 DLX(死信交换机) 消息成为死信的情况公有三种 ...