plsql developer查询问题

zzh200411 2015-02-11 04:00:18
plsql developer查一个比较复杂的语句第一次查询较慢,第二次查询较快,是不是plsql developer优化过了?

如何让每一次查询都反映真实的查询时间?
...全文
596 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2015-02-12
  • 打赏
  • 举报
回复
是 oracle 的 buffer cache 。
immmmmmmm 2015-02-12
  • 打赏
  • 举报
回复
如果你是 先执行一次 到显示出结果集的之前 数据库中要 有几个过程 1、语法检查 2 、语义检查 3、sql 解析 生成解析树 和执行计划、 最后才是返回结果,如果你sql 一次都没执行过,第一次执行时这几个过程是比较耗时的,执行一次后,这个sql 就会缓存了内存中,再次执行时,直接从缓存取找这个sql 的hash 值就行了,不用再经过前面的几步了,另外一个是统计信息过旧,对数据库的优化器作出了错误的执行计划。
zzh200411 2015-02-11
  • 打赏
  • 举报
回复
引用 3 楼 u012355452 的回复:
[quote=引用 楼主 zzh200411 的回复:] plsql developer查一个比较复杂的语句第一次查询较慢,第二次查询较快,是不是plsql developer优化过了? 如何让每一次查询都反映真实的查询时间?
清空共享池: ALTER SYSTEM FLUSH SHARED_POOL; 清空bufer ALTER SYSTEM FLUSH BUFFER_CACHE;[/quote] 提示权限不够
lyangsoft 2015-02-11
  • 打赏
  • 举报
回复
引用 楼主 zzh200411 的回复:
plsql developer查一个比较复杂的语句第一次查询较慢,第二次查询较快,是不是plsql developer优化过了? 如何让每一次查询都反映真实的查询时间?
清空共享池: ALTER SYSTEM FLUSH SHARED_POOL; 清空bufer ALTER SYSTEM FLUSH BUFFER_CACHE;
lyangsoft 2015-02-11
  • 打赏
  • 举报
回复
引用 楼主 zzh200411 的回复:
plsql developer查一个比较复杂的语句第一次查询较慢,第二次查询较快,是不是plsql developer优化过了? 如何让每一次查询都反映真实的查询时间?
第一次时需要对sql语句进行分析; 第二次运行时是直接将已经分析过的驻在内存中的sql语句直接运行。
lyangsoft 2015-02-11
  • 打赏
  • 举报
回复
是缓存

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧