首页 > 法律咨询 > 西藏法律咨询 > 日喀则法律咨询 > 日喀则刑事诉讼法律咨询 > 谁知道为什么SQL查询语句执行速度快,存储过程执行慢

谁知道为什么SQL查询语句执行速度快,存储过程执行慢

苟** 西藏-日喀则 刑事诉讼咨询 2017.10.15 20:00:54 7186人阅读

今天工作中遇到一些问题你,朋友之间讨论了很久都没有结果,现在请问高人为什么SQL查询语句执行速度快,存储过程执行慢的原因是什么,

其他人都在看:
日喀则律师 刑事辩护律师 日喀则刑事辩护律师 更多律师>
咨询我

SQL查询语句执行速度快,存储过程执行慢的原因举例分析如下
今天一个生成10条数据的存储过程执行了95,但是单独执行SQL语句只需要28,查资料后发现原来这是存储过程的机制导致的,也就是传说中的参数嗅探
网上的一段话:
(1)可能是发生了参数嗅探,第一次赋给存储过程的输入参数,会为该存储过程生成一个基于输入参数的执行计划,因此如果第一次输入的参数不具有代表性(例如大部分查询输入的参数都是A值,但第一次执行存储过程时输入的是B值),就有可能比即席查询慢,尽管即席查询需要重新编译执行计划,但选择了更有效率的计划。
尝试使用和即席查询一样的参数,来执行存储过程,然后对比一下两者的执行计划。
(2)通常存储过程最上面有自带的set设置,如set ansi_nulls on,而即席查询通常没有包含,这些set设置也会影响执行计划。
尝试在即席查询中添加上,与存储过程一样的set设置,然后再对比一下执行计划。
把存储过程的参数赋值给了存储过程中自定义的变量,整个存储过程中使用这个变量来代替参数,执行速度就和执行SQL一样了

2017-10-15 20:03:54 回复
没有解决问题?一分钟提问,更多律师提供解答! 立即咨询
优质咨询 热点推荐
诊断报告 全面解读 深度解析

法律问题专业剖析,免费提供
法律问题诊断分析报告~

免费体验
优选专业律师

律师三重认证,为您提供更专
业、更权威的真人律师~

立即查看

1分钟提问,海量律师解答

1

说清楚

完整描述纠纷焦点和具体问题

2

耐心等

律师在休息时间解答,请耐心等待

3

巧咨询

还有疑问?及时追问律师回复

立即咨询

想获取更多刑事辩护资讯

微信扫一扫