优化存储过程参考资料(实用、收藏)

205 篇文章 0 订阅
138 篇文章 0 订阅

一、分析存储过程重编译的起因以及避免
分析存储过程重编译的起因以及避免-CSDN博客

二、SQL优化:重新编译存储过程和表
https://www.cnblogs.com/momogua/p/8304445.html

三、SQL Server中存储过程比直接运行SQL语句慢的原因
SQL Server中存储过程比直接运行SQL语句慢的原因 - 无名 - 博客园

四、参数探测(Parameter Sniffing)影响存储过程执行效率解决方案
https://www.cnblogs.com/bi-info/p/6232372.html
总结 
1、参数探测(Parameter Sniffing)可以在存储过程级别上启用或禁用; 
2、如果检索的数据列基本上平均分布,我们不必使用本地变量(禁用Parameter Sniffing);例如,查询主键列或唯一键列(Unique Key); 
3、如果检索的数据列分布很大,则可以使用本地变量,禁用参数探测(Parameter Sniffing);
 

五、参数探测(Parameter Sniffing)与影响计划重用的SET选项
https://www.cnblogs.com/bigholy/archive/2011/10/18/2216489.html
总结 
1、采用相同存储过程和不同SET选项的连接在执行时,有可能产生新的执行计划,而并非采用已缓存的执行计划;
2、如何查看存储过程的执行计划和执行选项
3、如何写一个C#控制台测试程序
 

六、WITH RECOMPILE和OPTION(RECOMPILE)区别仅仅是存储过程级重编译和SQL语句级重编译
bobapp综合体育下载-手机版
编总结 
1、在存储过程级指定 WITH RECOMPILE 强制重编译 和SQL语句级指定的OPTION(RECOMPILE)强制重编译,相同条件下生成的执行计划是不一样的
2、相比WITH RECOMPILE这种强制重编译的方式,OPTION(RECOMPILE)能生成好的执行计划
3、select * from TestRecompile where Id = @p_parameter or @p_parameter is null,会抑制到索引的使用
4、可参考https://sqlinthewild.co.za/index.php/2009/03/19/catch-all-queries/,用sp_executesql解决@p_parameter is null的问题;  

七、SQL Server OPTION (OPTIMIZE FOR UNKNOWN) 测试总结
牛宝体育官网手机登陆-买球首选

八、Sql Server优化---统计信息维护策略
https://www.cnblogs.com/wy123/p/5748933.html

九、Sql Server中存储过程使用时间长了查询效率变得很慢的分析        (2023-12-28 加)
https://www.cnblogs.com/Shigq/articles/12173646.html
总结: 
1、存储过程加上 WITH RECOMPILE

十、一次存储过程参数嗅探定位流程总结                                                (2023-12-28 加)
https://www.cnblogs.com/kerrycode/p/9650629.html
总结:
1、文章介绍了如何查看:存储过程的执行记录及执行计划(这个实用);
2、最终用 OPTION (OPTIMIZE FOR UNKNOWN) 解决;

十一、SQL Server OPTION (OPTIMIZE FOR UNKNOWN) 测试总结        (2023-12-29 加)
https://www.cnblogs.com/kerrycode/p/9684192.html
博主总结:
1:执行不频繁的存储过程,使用OPTION(RECOMPILE)要优先与OPTION (OPTIMIZE FOR UNKNOWN)
2:执行频繁的存储过程,使用OPTION (OPTIMIZE FOR UNKNOWN)要优先于OPTION(RECOMPILE)
3:数据分布倾斜的厉害的情况下,优先使用OPTION(RECOMPILE)
4: 使用OPTION (OPTIMIZE FOR UNKNOWN)会生成一个稳定、统一的执行计划,如果这个执行计划的效率基本能满足用户需求,那么优先使用OPTION (OPTIMIZE FOR UNKNOWN)




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值