sqlserver存储过程查询缓慢锁表分析

背景

生产环境用户查询项目文件夹报错:

bash 复制代码
org.springframework.dao.DataAccessResourceFailureException: 
### Error querying database.  Cause: com.microsoft.sqlserver.jdbc.SQLServerException: Read timed out
### The error may exist in com/ht/dp/doc/query/dao/DocQueryDao.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: EXEC Sp_GetCadFolderPriviAll ?, ?, ?,         ?, ?, ?, ?
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: Read timed out
; Read timed out; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Read timed out

数据库执行存储过程发生了超时,根据用户反馈非必现

分析步骤

将存储过程解析为sql语句,打开sqlsever的执行计划:
可以看到16行 扫描行数达到了298w行,拿到该行:

OBJECT:(.dbo.PrjFolder.ix_PrjFolder_8 AS a), SEEK:(a.PrjID=@c_PrjID) ORDERED FORWARD

可以发现使用了项目id的关联:

这里添加了项目id,导致检索了全项目文件夹;通过分析业务,用户在查询父子级文件夹, JOIN Folder b ON a.ParentID = b.FolderID,已经满足了获取所有的父子级文件夹,无需增加项目id,按需关联条件。

相关推荐
ESDWAN几秒前
SD-WAN 是什么?工作原理、适用场景与选型要点
开发语言·网络·数据库·架构·php
m0_639906942 分钟前
MySQL 慢查询优化|explain执行计划详解
数据库·mysql
正儿八经的少年5 分钟前
MyBatis 一对一、一对多 SQL
数据库·sql·mybatis
Elastic 中国社区官方博客11 分钟前
Elastic 在《Forrester Wave™:2026 年第四季度智能运维平台》报告中被评为强劲表现者
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索
Apache IoTDB13 分钟前
从 IoTDB 到 CED-DB:哈尔滨工业大学探索云边端协同时序数据库
数据库·时序数据库·iotdb
闲云野鹤在人间19 分钟前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
Decay__40 分钟前
03_MySQL 存储引擎与存储管理 —— InnoDB 深入、表空间/ibd、binlog/redo/undo 与双写缓冲
运维·数据库·sql·mysql·架构
瀚高PG实验室1 小时前
瀚高数据库提交数据后,是否需要COMMIT
数据库·postgresql·瀚高数据库
bksczm1 小时前
MySQL程序架构
数据库·mysql·架构
论文复现现场1 小时前
2026 低成本 AI Agent 模型怎么选?DeepSeek V4.1 Flash、Qwen3.8 Flash、GLM-5.3 Flash 对比
数据库·人工智能·qwen·ai agent·glm·deepseek