
存储过程第一次执行耗时30分钟,第二次开始每次耗时不到3分钟,这是什么原因?
3个回答
展开全部
sql是高级语言,数据库系统执行sql之前要将sql语句进行解析(相当于编译),这个过程叫硬解析;数据库系统每次执行sql之前都会检查共享池中是不是存在已经解析过的语句,如果有就拿来直接用,这叫软结息。软解析比硬解析效率高,这是影响因素之一;
二、第一次执行可能没有走索引,第二次执行使用第一次执行的执行计划
三、看你的存储过程做了些什么,有可能第一次把活干完了,导致第二次执行没什么活干
以上回答基于oracle体系结构
二、第一次执行可能没有走索引,第二次执行使用第一次执行的执行计划
三、看你的存储过程做了些什么,有可能第一次把活干完了,导致第二次执行没什么活干
以上回答基于oracle体系结构
展开全部
因为第二次有缓存了。
追问
有缓存这个我知道的,但是有缓存速度会提升这么多吗?因为速度直接提升了10倍有点夸张吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会呀,时间差距这么大应该不是procedure的缓存问题,应该是SQL的问题吧。。。
追问
我也觉得不是缓存问题,可是SQL没有变啊,我把执行了一次以后修改的内容改回去,重新执行也还是这么快,循环的查询也是每次都应该执行的,没有加什么额外条件 会使后面几次执行就不进行全表扫描
追答
把SQL提出来执行看看就知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询