问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

存储过程第一次执行耗时30分钟,第二次开始每次耗时不到3分钟,这是什么原因?

发布网友 发布时间:2022-04-11 23:49

我来回答

4个回答

懂视网 时间:2022-04-12 04:10

临近年底,事情特别多,用户都把平时的问题积累到年底解决,导致了本人没到年底都是焦头烂额。前几天,一个用户现场着急打电话找到,说一个过程跑了好久也不跑不完。。。我问:手工执行呢?他说:手工执行也不出结果。有点纳闷儿,但因为不能连接他们的库,

临近年底,事情特别多,用户都把平时的问题积累到年底解决,导致了本人没到年底都是焦头烂额。前几天,一个用户现场着急打电话找到,说一个过程跑了好久也不跑不完。。。我问:手工执行呢?他说:手工执行也不出结果。有点纳闷儿,但因为不能连接他们的库,所以,也是不知道具体怎么回事儿。于是就让他们通过系统视图v$session和v$sql等,获取了该过程被卡住的语句,大概如下:

又了解了这些表的数据量情况,除了T1仅有几千条数据,其他都是分区表,每张表数据量都上亿条记录。于是,让他们获取了执行计划,如下:

看了下该计划,没发现明显的问题。难道因为变量的传入导致了执行计划的改变?带着疑问,让他们又通过v$sql_plan视图获取了该SQL的执行计划,大概如下:

哈哈,看到上面的计划,真相大白,现在的数据库真是的,也学会了瞒天过海的招数,锁定原因就好办,原语句修改如下:

这下应该没问题了,测试一下,不到1s出结果,修改过程后,运行过程,2s跑完,问题成功解决。

热心网友 时间:2022-04-12 01:18

sql是高级语言,数据库系统执行sql之前要将sql语句进行解析(相当于编译),这个过程叫硬解析;数据库系统每次执行sql之前都会检查共享池中是不是存在已经解析过的语句,如果有就拿来直接用,这叫软结息。软解析比硬解析效率高,这是影响因素之一;
二、第一次执行可能没有走索引,第二次执行使用第一次执行的执行计划
三、看你的存储过程做了些什么,有可能第一次把活干完了,导致第二次执行没什么活干
以上回答基于oracle体系结构

热心网友 时间:2022-04-12 02:36

因为第二次有缓存了。追问有缓存这个我知道的,但是有缓存速度会提升这么多吗?因为速度直接提升了10倍有点夸张吧?

热心网友 时间:2022-04-12 04:11

不会呀,时间差距这么大应该不是procere的缓存问题,应该是SQL的问题吧。。。追问我也觉得不是缓存问题,可是SQL没有变啊,我把执行了一次以后修改的内容改回去,重新执行也还是这么快,循环的查询也是每次都应该执行的,没有加什么额外条件 会使后面几次执行就不进行全表扫描

追答把SQL提出来执行看看就知道了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何实现一个存储过程最大执行10秒,超时退出 存储过程的编写2 将数据库里的存储过程转换 SQL语句跑几秒存储过程跑几十分钟正常吗? 电脑的gpt和guid有什么区别,为什么用原装镜像不能装gpt 《哇咔哇咔》的外文歌词 分区GUID表示的是什么? GUID的介绍 C# 系统登录用户在另外一台机器登录的时候 正在登录的这台自动退出 代码怎么写? 如何产生“随机”,但也“独一无二”的数字 qq的guid码用途 我们公司需要做实时的报表,说sap bw不能实现,然后建议用bo的ETL产品,BO的产品data integrator 能实时吗 在excel中如何用散点图和趋势线分析销售收入和运营支出的关系? 请教一道excel数据分析的题,主要是2问应该怎样做?自己做出来的不知道对不对,总感觉有问题 在excel里如何对300个数据(不分组)做图表分析(趋势分析) Excel 可以进行时间序列回归分析吗 excel如何用公式分析根据年份波动的一组数据的趋势(向上或向下) excel表格链接图表(趋势分析)的高端问题 linux centos5.7 能安装vertica6rpm么 我的世界iphone6版怎么联机 存储过程怎么写!急急急!要完整的准确的(考研要考) 各位大侠帮帮忙,怎样把这段存储过程转换为SQL语句,在线等,先谢谢了! 200分求改一存储过程的错误,并说明 把一条只sql语句放入到数据存储过程,调用的时候能调高效率吗? 我一字不差的sql语句 直接查询是0.16秒 放到存储过程里面执行 就四五秒 这个会是什么地方的原因? SQL Server 存储过程中的循环语句,写的不对,就是想proc_a这个存储过程第一次执行@a=1,第二次执行就为2 关于硬盘各种接口以及对应主板的哪种插槽 是不是硬盘坏了 电脑硬盘无法使用 这个硬盘还有救吗? 硬盘这种情况可能导致电脑不稳定吗? 硬盘坏族如何修复? 硬盘05 c5 c7有问题只把它当仓库用行不 用BT为什么会伤硬盘? 电脑很卡,检测硬盘重新分配扇门计数警告 怎么解决 浅析三星750 evo和850 evo固态硬盘的不同区别 电脑买什么牌子的比较好? 计算机毕业论文 浅谈硬盘数据恢复 浅谈硬盘的分区与格式化 浅谈为什么需要买SSD固态硬盘