Oracle 如何强制刷新Buffer Cache

标签: oracle buffer cache | 发表时间:2013-12-18 10:46 | 作者:魔女夕雨
出处:http://www.iteye.com


  在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';

  在Oracle 10g中,Oracle提供一个新的特性,可以通过如下命令刷新Buffer Cache:

  alter system flush buffer_cache;

  我们通过试验来看一下刷新Cache的作用:

  1.创建测试表

  SQL> create table t as select * from dba_objects;Table created.SQL> analyze table t compute statistics;Table analyzed.SQL> select blocks,empty_blocks from dba_tables

  2 where table_name='T' and owner='SYS'; BLOCKS EMPTY_BLOCKS

  ---------- ------------

  78 1

  表T共有79个Block.

  2. x$bh

  SQL> select count(*) from x$bh; COUNT(*)

  ----------

  14375SQL> select count(*) from x$bh where state=0; -- state =0 is free COUNT(*)

  ----------

  13960SQL> alter system set events = 'immediate trace name flush_cache';System altered.SQL> select count(*) from x$bh where state=0; COUNT(*)

  ----------

  14375

  我们注意到flush_cache以后,所有Buffer都被标记为free.

  3. 观察flush_cache对于查询的影响

  SQL> set autotrace trace stat

  SQL> select count(*) from t;Statistics

  ----------------------------------------------------------

  0 recursive calls

  0 db block gets

  81 consistent gets

  79 physical reads

  0 redo size

  ....SQL> SQL> select count(*) from t;Statistics

  ----------------------------------------------------------

  0 recursive calls

  0 db block gets

  81 consistent gets

  0 physical reads

  0 redo size

  ....SQL> alter system set events = 'immediate trace name flush_cache';System altered.SQL> select count(*) from t;Statistics

  ----------------------------------------------------------

  0 recursive calls

  0 db block gets

  81 consistent gets

  79 physical reads

  0 redo size

  ....SQL>

  以上说明仅供参考。


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [oracle buffer cache] 推荐:

Oracle 如何强制刷新Buffer Cache

- - 数据库 - ITeye博客
  在Oracle9i里,Oracle提供了一个内部事件,用以强制刷新Buffer Cache,其语法为:.   类似的也可以使用alter system系统级设置:.   在Oracle 10g中,Oracle提供一个新的特性,可以通过如下命令刷新Buffer Cache:.   我们通过试验来看一下刷新Cache的作用:.

oracle 11g 之 result cache

- - CSDN博客数据库推荐文章
oracle 11g 之 result cache.   今天是2013-10-12,打算最近时间研究一下shared pool的相关原理以及awr报告分析. 今天学习一下在oracle 11g shared pool中新增的一个cache 那就是result cache.      现在开始研究一下result cache,对于oracle 11g 分为client result cache以及server result cache,前者在client进行内存的分配,后者对于数据库server进行内存分配,现在看一下server result cache(如下皆是server result cache内容).

数据读取之逻辑读简单解析--关于BUFFER CACHE

- - CSDN博客数据库推荐文章
数据读取之逻辑读简单解析--BUFFER CACHE. 一、实验数据准备--查出一条数据的ROWID,及FILE_ID,BLOCK_ID等信息. 使用下面语句查出相应行的FILE_ID,BLOCK_ID,关于ROWID,详见:http://blog.csdn.net/q947817003/article/details/11490051.

Linux 内存 buffer 和 cache 的区别(转载)

- - 操作系统 - ITeye博客
Free 命令相对于top 提供了更简洁的查看系统内存使用情况:.        在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快.        Linux 内存机制.

Guava cache

- - 孟飞阳的博客
Guava Cache是一个全内存的本地缓存实现,它提供了线程安全的实现机制. 整体上来说Guava cache 是本地缓存的不二之选,简单易用,性能好.    Guava Cache有两种创建方式:.   通过这两种方法创建的cache,和通常用map来缓存的做法比,不同在于,这两种方法都实现了一种逻辑——从缓存中取key X的值,如果该值已经缓存过了,则返回缓存中的值,如果没有缓存过,可以通过某个方法来获取这个值.

Java Cache系列之Guava Cache

- - BlogJava-首页技术区
然而作为工具库中的一部分,我们自然不能期待Guava对Cache有比较完善的实现. 因而Guava中的Cache只能用于一些把Cache作为一种辅助设计的项目或者在项目的前期为了实现简单而引入. 在Guava CacheBuilder的注释中给定Guava Cache以下的需求:. 对于这样的需求,如果要我们自己来实现,我们应该怎么设计.

巧用query cache

- - OurMySQL
   收到一用户反馈其应用日志中狂报错误,获取连接超时:. 同时应用报错超出了数据库的最大连接数:max connections:. 这种情况很有可能是有慢sql占用了连接池中的连接没有释放,导致后续进来的请求迟迟获取不到连接池中的连接,导致请求报错,登录数据库排查发现如下sql出现执行非常的慢:.

Google Protocol Buffer 简单介绍 - zhanjindong

- - 博客园_首页
以下内容主要整理自 官方文档. 为什么使用 Protocol Buffers. Protocol Buffers 语法. 为什么使用 Protocol Buffers. 通常序列化和解析结构化数据的几种方式. 使用Java默认的序列化机制. 这种方式缺点很明显:性能差、跨语言性差. 将数据编码成自己定义的字符串格式.

Cache-control使用Cache-control:private学习笔记

- - Web前端 - ITeye博客
网页缓存由 HTTP消息头中的Cache-control控制,常见取值有private、no-cache、max-age、must- revalidate等,默认为private. 其作用根据不同的重新浏览方式,分为以下几种情况:. 值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器.

MySQL Query Cache 小结

- Eneri - Sky.Jian 朝阳的天空
最近经常有人问我 MySQL Query Cache 相关的问题,就整理一点 MySQL Query Cache 的内容,以供参考. 顾名思义,MySQL Query Cache 就是用来缓存和 Query 相关的数据的. 具体来说,Query Cache 缓存了我们客户端提交给 MySQL 的 SELECT 语句以及该语句的结果集.