oracle清除sql的缓存
在Oracle9i里,Oracle提供了一个内部事件,用以强制刷新Buffer Cache,其语法为:
alter session set events 'immediate trace name flush_cache level 1';
或者:
alter session set events = 'immediate trace name flush_cache';
类似的也可以使用alter system系统级设置:
alter system set events = 'immediate trace name flush_cache';
在Oracle10g中,Oracle提供一个新的特性,可以通过如下命令刷新Buffer Cache:
alter system flush buffer_cache;
===============================
问题:
性能测试的时候,遇到第一次读取数据库很慢,以后几次都瞬间读取完成。
应该是Oracle缓存的作用,第一次读完以后放入缓存,以后读取就很快了。
但是测试的时候这样可不行。
解决方法:清除缓存
ALTER SYSTEM FLUSH SHARED_POOL
ALTER SYSTEM FLUSH BUFFER_CACHE
ALTER SYSTEM FLUSH GLOBAL CONTEXT