为什么SQL在plsql里执行出的时间和执行计划的不相符
1个回答
推荐于2016-07-04
展开全部
别用PLSQL DEVELOPER ,放在SQL PLUS里执行,就能看出了。
另外,程序开始跟结尾用 dbms_output.putline() 输出一下系统时间,就能判断出来执行时间。
要是非用PLSQL DEVELOP ,也可以按F5,看看执行计划。
如果有 FULL SCAN之类的,就是全表扫描了,估计数据量大的时候,没有建立或利用上索引,执行会比较慢。
数据量小的时候,要看是不是做跟一个大表的关联,看看大表关联是不是用到索引了,用到了也慢不到那里去,要是没用到的话,就慢了。
这个问题不好讲具体是那里出的问题,比如CACHE的命中也会影响,前5K都是连续命中,哪就很快,后5K都是间隔命中,哪就多次I/O,肯定就慢!
另外,程序开始跟结尾用 dbms_output.putline() 输出一下系统时间,就能判断出来执行时间。
要是非用PLSQL DEVELOP ,也可以按F5,看看执行计划。
如果有 FULL SCAN之类的,就是全表扫描了,估计数据量大的时候,没有建立或利用上索引,执行会比较慢。
数据量小的时候,要看是不是做跟一个大表的关联,看看大表关联是不是用到索引了,用到了也慢不到那里去,要是没用到的话,就慢了。
这个问题不好讲具体是那里出的问题,比如CACHE的命中也会影响,前5K都是连续命中,哪就很快,后5K都是间隔命中,哪就多次I/O,肯定就慢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询