oracle db_cache修改,相克军_Oracle体系_随堂笔记005-Database buffer cache

注:在Oracle中,一般都是采用双向的链。

4.DB_WRITER_PROCESSES

SQL> show parameter writer

NAME TYPE VALUE

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

db_writer_processes integer 1

SQL> alter system set db_writer_processes = 2 scope=spfile;

--DBWn数量一般设定是服务器核心数/8.

5.buffer cache的重要参数配置

alter system set db_cache_size=200m scope=both;

设置顺序:

sga_max_size

sga_target

db_cache_size

在OLTP系统中,buffer cache的大小一般设置为sga_max_size的2/3.

DB_CACHE_SIZE = SGA_MAX_SIZE/2 ~ SGA_MAX_SIZE*2/3

使用advice来确认buffer cache的大小

根据语句查询buffer cache该设置多大合适。减少I/O(物理读次数)

平日注意收集积累一些常用的语句》。

6.Block状态

buffer header:

SQL> desc x$bh

state:0~8

0,free

1,XCUR

2,SCUR

3,CR

4,READ 从block写入buffer的那个过程

5,MREC

6,IREC

7,write

8,pi

SQL> select distinct state from x$bh;

非RAC环境下,current永远等于xcur。

RAC下,有scur

Q:current块和cr块区别?

A:

cr块被构造后被读出,就马上没意义了。。马上就可以被覆盖了。。

要修改一个块,只能修改current块。

Q:查看一个对象占用了多少不同状态的buffer?

A:

select

o.object_name,

decode(state,0,‘free‘,1,‘xcur‘,2,‘scur‘,3,‘cr‘,4,‘read‘,5,‘mrec‘,

6,‘irec‘,7,‘write‘,8,‘pi‘) state,

count(*) blocks

from x$bh b, dba_objects o

where b.obj = o.data_object_id

and o.object_name = ‘T2‘

group by o.object_name, state

order by blocks desc

注:实验的时候可以先执行

alter system flush buffer_cache;

7.使用各种sql熟知buffer cache使用情况

select distinct object_name, dbarfil, dbablk from x$bh a, dba_objects b

where a.obj=b.object_id and object_name=‘T2‘;

OBJECT_NAME             DBARFIL     DBABLK

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

T2                            1      86184

T2                            1      86185

select object_name, dbarfil, dbablk from x$bh a, dba_objects b

where a.obj=b.object_id and object_name=‘T2‘;

Q:将buffer cache中占用buffer最多的对象给找出来?

A:

select

o.object_name,

decode(state,0,‘free‘,1,‘xcur‘,2,‘scur‘,3,‘cr‘,4,‘read‘,5,‘mrec‘,

6,‘irec‘,7,‘write‘,8,‘pi‘) state,

count(*) blocks

from x$bh b, dba_objects o

where b.obj = o.data_object_id and state<>0

group by o.object_name, state

order by blocks asc;

Q:寻找热块

A:

select

obj object,

dbarfil file#,

dbablk block#,

tch touches

from x$bh

where tch>10

order by

tch asc;

OBJECT      FILE#     BLOCK#    TOUCHES

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

5847          1      11752         29

5834          1      11664         29

5834          1      11665         29

5832          1      11649         30

5833          1      11657         30

5834          1      11666         31

287          1       2009         45

287          1       2008         45

96 rows selected.

注:块被逻辑读的次数多,就是热端,根据块的tch属性判断。

select object_name, dbarfil, dbablk from x$bh a, dba_objects b

where a.obj=b.object_id and dbarfil=1 and dbablk=287

Q:块的总数

A:

select sum(blocks) from dba_data_files;

SUM(BLOCKS)

-----------

176640

Q:查询当前空闲空间的比例,最好控制在10%以内

A:

select decode(state,0,‘FREE‘,1,decode(lrba_seq,0,‘AVAILABLE‘,‘BEING USED‘),3,‘BEING USED‘, state) "BLOCK STATUS",count(*)

from x$bh

group by decode(state,0,‘FREE‘,1,decode(lrba_seq,0,‘AVAILABLE‘,‘BEING USED‘),3,‘BEING USED‘,state);

BLOCK STATUS                               COUNT(*)

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

BEING USED                                       74

AVAILABLE                                      5385

FREE                                          10696

Q:最浪费内存的前10个语句占所有的比例,建议控制在5%以内

A:

select sum(pct_bufgets) "Percent"

from (select rank() over (order by buffer_gets desc) as rank_bufgets, to_char(100 * ratio_to_report(buffer_gets) over(),‘999.99‘)pct_bufgets from v$sqlarea)

where rank_bufgets < 11;

Q:找出消耗物理I/O资源最大的SQL语句

A:

select disk_reads, substr(sql_text,1,4000)

from v$sqlarea

order by disk_reads asc;

Q:常见的操作系统命令,查看

A:

iostat 1 10

vmstat 1 10

mpstat 1 10

mpstat -P 0 1

mpstat -P 1 1

top

free

内存读:消耗CPU资源

物理读:消耗I/O资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值