Update from Sync Service
This commit is contained in:
@@ -1,15 +1,54 @@
|
|||||||
|
# CPU 占用过高排查
|
||||||
|
|
||||||
|
> SQL Server 查询最耗 CPU 的 SQL 语句
|
||||||
|
|
||||||
|
## 查询最耗 CPU 的语句
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
SELECT TOP 10
|
SELECT TOP 10
|
||||||
```
|
total_worker_time / execution_count AS avg_cpu_cost,
|
||||||
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
|
plan_handle,
|
||||||
execution_count,
|
execution_count,
|
||||||
(SELECT SUBSTRING(text, statement_start_offset/2 + 1,
|
(SELECT SUBSTRING(
|
||||||
(CASE WHEN statement_end_offset = -1
|
text,
|
||||||
THEN LEN(CONVERT(nvarchar(max), text)) * 2
|
statement_start_offset / 2 + 1,
|
||||||
ELSE statement_end_offset
|
(CASE
|
||||||
```sql
|
WHEN statement_end_offset = -1
|
||||||
END - statement_start_offset)/2)
|
THEN LEN(CONVERT(nvarchar(max), text)) * 2
|
||||||
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
|
ELSE statement_end_offset
|
||||||
|
END - statement_start_offset) / 2
|
||||||
|
) FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
|
||||||
FROM sys.dm_exec_query_stats
|
FROM sys.dm_exec_query_stats
|
||||||
|
ORDER BY [avg_cpu_cost] DESC
|
||||||
```
|
```
|
||||||
ORDER BY [avg_cpu_cost] DESC
|
|
||||||
|
## 常用排查命令
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- 查看当前会话
|
||||||
|
EXEC sp_who2
|
||||||
|
|
||||||
|
-- 查看锁
|
||||||
|
EXEC sp_lock
|
||||||
|
|
||||||
|
-- 查看 CPU 使用
|
||||||
|
SELECT
|
||||||
|
session_id,
|
||||||
|
status,
|
||||||
|
cpu_time
|
||||||
|
FROM sys.dm_exec_requests
|
||||||
|
ORDER BY cpu_time DESC
|
||||||
|
```
|
||||||
|
|
||||||
|
## 常见原因
|
||||||
|
|
||||||
|
| 原因 | 解决方法 |
|
||||||
|
|------|----------|
|
||||||
|
| 缺少索引 | 添加适当索引 |
|
||||||
|
| 统计信息过时 | UPDATE STATISTICS |
|
||||||
|
| 低效查询 | 优化 SQL |
|
||||||
|
| 过多编译 | 使用参数化查询 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> 💡 定期检查慢查询,持续优化。
|
||||||
|
|||||||
Reference in New Issue
Block a user