分享
 
 
 

oracle statspack实例(一)

王朝oracle·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

大 db_block_size

大 db_cache_size

使用多个块大小

多个数据库写入(DBWR)进程

大sort_area_size

大的在线重作日志

oracle 对象

在数据库内部(表和索引的设置可以减少物理磁盘IO)

低pctused pctuseed的值越小,随后的sql插入中出现的io就越少

低pctfree 如果设置了pctfree,以允许在没有分割的情况下扩展所有行,那么在随后的sql选择中就会产生更少的磁盘io

使用索引将表重新组织成簇行 如果以最常使用索引的相同物理次序放置表

3 oracle sql

在sql语句内,有许多技术可以减少物理磁盘io

使用索引或提示(hint)防止不必要的全表搜索

使用位映射(bitmapped)索引

应用sql提示

oracle 内部结构和磁盘io

--查找稀疏表(自由表失去平衡!)

select

substr(dt.table_name,1,10) c3,

ds.extents c5,

ds.bytes/1048576 c4,

dt.next_extent/1048576 c8,

(dt.empty_blocks*4096)/1048576 c7,

(ds.bytes*4096)/1048576 c6,

(avg_row_len*num_rows)/(db.blocks*4096) c10

from sys.dba_segments ds ,

sys.dba_tables dt

where

--调整oracle数据库实例

接下来我们要调整oracle数据库实例,以及查看所有影响性能的 参数,配置和设定

用STATAPACK检测实例潜在的性能问题

1.oracle实例概述

2.调整oracle 数据缓冲区

3.调整共享池概述

4.调整库高速缓存

5.调整oracle排序

6.调整回滚段

7.oracle 9i RAM 内存调整

通常的角度看 oracle实例包括了两个组件: 系统全局区(SGA) 以及 oracle后台进程

我们通常通过调整oracle参数来控制SGA和后台进程

当oracle启动时 oracle就会使用malloc()命令去建立一个RAM内存区域,这个SGA通常也称为oracle区域

oracle DBA 可以控制SGA的规模 正确的SGA管理可以极大的影响性能

尽管初始化参数成百上千

但是只有很少的oracle9i参数对调整非常重要:

buffer_pool_keep 这个数据缓冲池用于存储执行全表扫描的小表

buffer_pool_recycle 这个池用来保存进行全表扫描的非常大的表的表块

db_cache_size 这个参数会决定ORACLE SGA 中数据库块缓冲区的数量,它是oracle内存的最重要的参数

db_block_size 数据库块大小能够对性能产生(作为一个一般的规则,块尺寸越大,物理IO就越少,整体性能就越快)

db_file_multiblock_read_count 这个参数用于全表搜索或者大表范围扫描的时候,进行多块读入

large_pool_szie 这是一个使用多线程服务器的时候,保留用于SGA使用的共享池中的特殊区域.最大池也用于并行查询RAM进程

log_buffer 这个参数会决定为oracle重作日志缓冲区分配的内存数量.如果具有大量的更新活动,就应该给log_buffer分配更多的空间

shared_pool_size 这个参数会定义系统中所有用户的共享池,包括SQL区域和数据字典高速缓存.

--有三个oracle参数可以影响数据缓冲区的大小

db_cache_size

buffer_pool_keep

buffer_pool_recycle

oracle建议缓冲区的命中率要超过90% DBA可以通过给初始化参数增加数据块数量来控制数据缓冲区命中率

数据库缓冲池的内部结构

--使用statspack监视缓冲池的使用

--缓冲池命中率和statpack

select * from stats$buffer_pool_statistics

SGA_MAX_SIZE=6000M

DB_BLOCK_SIZE=16384

DB_CACHE_SIZE=5000M

BUFFER_POOL_KEEP=(1400,3)

BUFFER_POOL_RECYCLE=(900,3)

--在oracle8 可以使用

ALTER TABLE CUSTOMER STORAGE(buffer_pool KEEP);

ALTER TABLE USER.TABLE_NAME STORAGE(buffer_pool keep);

--高级KEEP池候选识别

除了进行全表扫描的小表之外,keep缓冲池还非常适合放置频繁使用的数据段的数据块

--使用x$bh视图来识别平均块接触次数超过5次,并且在缓存中占用超过20个数据块的对象

--

hot_buffer.sql

--识别热点对象

select object_type mytype,

object_name myname ,

blocks,

count(1) buffers,

avg(tch) avg_touches

from

sys.x$bh a,

dba_objects b,

dba_segments s

where

a.obj=b.object_id

and

b.object_name=s.segment_name

and

b.owner not in('SYS','SYSTEM')

GROUP BY object_name,object_type,

blocks,obj

having avg(tch)>5

and count(1)>20;

识别出热点对象后,可以决定将对象隔离放入keep池中

作为一般的规则,应该有足够的RAM存储可以用于整个表或者索引

列如,如果希望为keep池增加页表,就需要给init.ora的buffer_pool_keep 参数增加104个数据块

--调整 recycle 池

在recycle池放置对象的目标是将全表搜索频率的大表进行分离,为了找到进行全表搜索的大表,我们必须求助于从

access.sql中获得的全表搜索报告:

access_recycle_syntax.sql

select

'alter table '||p.owner||'.'||p.name||' storage (buffer_pool recyle);'

from

dba_tables t,

dba_segments s,

sqltemp s,

(select distinct

statement_id stid,

object_owner owner,

object_name name

from

plan_table

where

operation='TABLE ACCESS'

and

options='FULL') p

where

s.addr||':'||TO_CHAR(s.hashval)=p.stid

and

t.table_name=p.name

and

t.owner=p.owner

and t.buffer_pool<>'RECYCLE'

having s.blocks>1000

group by

p.owner,p.name,t.num_rows,s.blocks

order by

sum(s.executions) desc;

--给表分配recycle池

alter table user.table_name storage(buffer_pool recycle);

注意:在将任何表加入到RECYCLE池之前,DBA都应该抽取sql源代码,并且验证这个查询是否获取超过了表中行的40%

--高级recycle池调整

下列查询使用了x$bh.tch来识别具有一次缓冲区接触计数,但是总量超过了整个缓存的5%的数据缓存中的对象

,这些数据段是潜在的在recycle缓冲池中放置的候选对象,因为他们可能会让不会重用的数据块占用大量的缓存空间

select object_type mytype,

object_name myname,

blocks,

count(1) buffers,

100*(count(1)/totsize) pct_cache

from

sys.x$bh a,

dba_objects b,

dba_segments s,

()

--取消跟踪功能

alter system set trace_enabled=false;

--STATISTICS_LEVEL

The STATISTICS_LEVEL parameter was introduced in Oracle9i Release 2 (9.2) to control all major statistics collections or advisories in the database. The level of the setting affects the number of statistics and advisories that are enabled:

BASIC: No advisories or statistics are collected.

TYPICAL: The following advisories or statistics are collected:

Buffer cache advisory

MTTR advisory

Shared Pool sizing advisory

Segment level statistics

PGA target advisory

Timed statistics

ALL: All of TYPICAL, plus the following:

Timed operating system statistics

Row source execution statistics

The parameter is dynamic and can be altered using:

ALTER SYSTEM SET statistics_level=basic;

ALTER SYSTEM SET statistics_level=typical;

ALTER SYSTEM SET statistics_level=all;

Current settings for parameters can be shown using:

SHOW PARAMETER statistics_level

SHOW PARAMETER timed_statistics

Oracle can only manage statistic collections and advisories whose parameter setting is undefined in the spfile.

By default the TIMED_STATISTICS parameter is set to TRUE so this must be reset for it to be controled by the statistics level,

along with any other conflicting parameters:

ALTER SYSTEM RESET timed_statistics scope=spfile sid='*';

This setting will not take effect until the database is restarted.

At this point the affect of the statistics level can be shown using the following query:

COLUMN statistics_name FORMAT A30 HEADING "Statistics Name"

COLUMN session_status FORMAT A10 HEADING "Session|Status"

COLUMN system_status FORMAT A10 HEADING "System|Status"

COLUMN activation_level FORMAT A10 HEADING "Activation|Level"

COLUMN session_settable FORMAT A10 HEADING "Session|Settable"

SELECT statistics_name,

session_status,

system_status,

activation_level,

session_settable

FROM v$statistics_level

ORDER BY statistics_name;

A comparison between the levels can be shown as follows:

SQL> ALTER SYSTEM SET statistics_level=basic;

System altered.

SQL> SELECT statistics_name,

2 session_status,

3 system_status,

4 activation_level,

5 session_settabl

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有