SQL Server存储过程周期性锁死,重编译仅缓解问题求原因
问题背景
我们有一个用于网格筛选、排序、分页的高负载TSQL存储过程,需检索约15万条应用类型记录,正常执行耗时2-3秒。但每1-3天会出现异常:该存储过程对任何参数均无响应,仅需执行无修改的ALTER语句即可恢复,恢复后可正常运行1-3天。添加OPTION (RECOMPILE);后,故障周期延长至5-7天,但问题仍存在。
故障发生时,仅该存储过程无响应,其他查询及存储过程运行正常,服务器无CPU或内存异常,且使用最新版SQL Server。
无法展示完整查询,其WHERE筛选语句示例如下:
WHERE (@Query is null OR concat(p.First , ' ' , p.Last) LIKE '%' + @Query + '%' OR concat(j.First , ' ' , j.Last) LIKE '%' + @Query + '%' OR concat(p.First , ' ' , p.Middle , ' ' , p.Last) LIKE '%' + @Query + '%' OR concat(j.First , ' ' , j.Middle , ' ', j.Last) LIKE '%' + @Query + '%'
咨询问题
导致该存储过程无响应的原因是什么?
内容的提问来源于stack exchange,提问作者TroySteven
相关产品推荐
相关产品推荐

