Update from Sync Service

This commit is contained in:
FNS Service
2026-04-21 21:13:51 +08:00
parent c0ae2f0edb
commit fa752493e9

View File

@@ -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 |
| 过多编译 | 使用参数化查询 |
---
> 💡 定期检查慢查询,持续优化。