使用存储过程非常慢,但是直接执行SQL很快。 了解基本情况后,初步判断是参数嗅探问题 在对应的SQL语句后面使用 OPTION(OPTIMIZE FOR UNKNOWN) 参考了 http://www.cnblogs.com/kerrycode/p ...
前言 最近,在工作中发现,两个问题: .应用程序调用存储过程很慢,但是在查询分析器中把SQL语句拿出来执行存储过程就很快。 .在查询分析器中执行存储过程很慢,但是把存储过程中的内容拿出来执行很快 问题的分析与解决 问题 产生原因 在应用程序中 或者在查询分析器中 调用存储过程的时候,存储过程的执行计划是被缓存了,就算参数不同,还是按照老的执行计划查询,效率也会不同。 问题 解决方法 直接在存储过程 ...
2021-05-21 12:17 0 2162 推荐指数:
使用存储过程非常慢,但是直接执行SQL很快。 了解基本情况后,初步判断是参数嗅探问题 在对应的SQL语句后面使用 OPTION(OPTIMIZE FOR UNKNOWN) 参考了 http://www.cnblogs.com/kerrycode/p ...
1、在查询分析器上执行:exec sp_recompile @objname='存储过程名称' 解析:由于存储过程是预编译的, 在第一次执行的时候, 会生成执行计划, 以后执行的时候, 会使用这个执行计划(除非存储过程侯或者显示指定重新编译),而不是每次执行时都去生成执行 ...
1、在查询分析器上执行:exec sp_recompile @objname='存储过程名称' 解析:由于存储过程是预编译的, 在第一次执行的时候, 会生成执行计划, 以后执行的时候, 会使用这个执行计划(除非存储过程侯或者显示指定重新编译),而不是每次执行时都去生成执行计划。 当存储过程 ...
.NET调用存储过程时,有时候会变的很慢甚至会timeout,但是再执行一下存储过程,再调用就会很快。 解决办法: 1. 在可能比较耗时的语句后面加上option(recompile) 2. 创建存储过程时在其定义中指定 WITH RECOMPILE 选项,表明 SQL Server ...
,在数据库中执行存储过程,查询数据是很快的,速度非常理想,1秒不到,但是c#程序中调用就要很久。 百度了 ...
1. 场景: ①存储过程执行慢,但是存储过程中拆出来的SQL语句执行并不慢。 ②存储过程执行慢,但是重新执行存储过程(重新编译存储过程)后,存储过程执行正常。 2. 解决方案: 在存储过程中国对应的SQL语句后面使用OPTION (RECOMPILE) ,但是考虑 ...
最近执行一个存储过程,速度奇慢,将单独的SQL拉出来执行速度很快,找了多方原因,判断原因是参数传递的原因。 解决方法 :定义一个新的变量,将参数的值 赋给变量,速度有所改善 附全部SQL ...
参考: http://www.debugease.com/mssqlbasic/976568.html https://www.cnblogs.com/Irving/p/3951220.html ...