问题描述
针对Oracle数据库进行查询操作,第一次查询非常慢,sql语句再次执行,会变得非常快(前后执行时间差几十倍甚至上百倍)。该现象是存在查询缓存的缘故,所以有时难以比较、判断某个查询的效率。
解决方法
oracle 10g 以上
alter system flush buffer_cache;
oracle 9g以下
ALTER SESSION SET EVENTS 'immediate trace name flush_cache';
注意事项
- 执行命令需要权限
- 关闭软件(pl/sql、navicat),再重新打开好像并不能清除查询缓存