使用存储过程非常慢,但是直接执行SQL很快。 了解基本情况后,初步判断是参数嗅探问题 在对应的SQL语句后面使用 OPTION(OPTIMIZE FOR UNKNOWN) 参考了 http://www.cnblogs.com/kerrycode/p ...
.NET调用存储过程时,有时候会变的很慢甚至会timeout,但是再执行一下存储过程,再调用就会很快。 解决办法: . 在可能比较耗时的语句后面加上option recompile . 创建存储过程时在其定义中指定 WITH RECOMPILE 选项,表明 SQL Server 将不对该存储过程计划进行高速缓存 该存储过程将在每次执行时都重新编译。当存储过程的参数值在各次执行间都有较大差异,导致每 ...
2012-07-30 11:41 1 3206 推荐指数:
使用存储过程非常慢,但是直接执行SQL很快。 了解基本情况后,初步判断是参数嗅探问题 在对应的SQL语句后面使用 OPTION(OPTIMIZE FOR UNKNOWN) 参考了 http://www.cnblogs.com/kerrycode/p ...
1、在查询分析器上执行:exec sp_recompile @objname='存储过程名称' 解析:由于存储过程是预编译的, 在第一次执行的时候, 会生成执行计划, 以后执行的时候, 会使用这个执行计划(除非存储过程侯或者显示指定重新编译),而不是每次执行时都去生成执行计划 ...
https://blog.csdn.net/river_continent/article/details/81165310 http://blog.itpub.net/26686207/views ...
存储过程包含一组复杂的SQL语句,使生成存储过程的执行计划的代价有些高。因此通常重用存储过程的执行计划来代替生成新计划是有利的。但是有时候现有的计划可能不适用或者在重用期间可能不能提供最佳的处理策略。SQL Server重编译存储过程中的语句来生成一个新的执行计划以解决这个问题。 1、产生存储过程 ...
1、在查询分析器上执行:exec sp_recompile @objname='存储过程名称' 解析:由于存储过程是预编译的, 在第一次执行的时候, 会生成执行计划, 以后执行的时候, 会使用这个执行计划(除非存储过程侯或者显示指定重新编译),而不是每次执行时都去生成执行计划。 当存储过程 ...
第一种 如果你使用 PL/SQL Developer工具 左侧工具栏中选择“存储过程”-》选择已经失效的procedure-》右键-》选择重新编译 即可完成 第二种 命令行版 1.查找到无效对象 select 'Alter '||object_type ...
SQL Server 中,强制重新编译存储过程的方式有三种: sp_recompile 系统存储过程强制在下次执行存储过程时对其重新编译。具体方法是:从过程缓存中删除现有计划,强制在下次运行该过程时创建新计划。 创建存储过程时在其定义中指定 WITH RECOMPILE 选项 ...
--1调用存储过程 exec 存储过程名 参数 --2当表使用 select a.*,b.* from tb b inner join ( select * from openrowset( 'sqloledb ...