ITPub博客

首页 > 数据库 > Oracle > 性能调优学习笔记(六)

性能调优学习笔记(六)

原创 Oracle 作者:halfgene 时间:2007-09-25 00:27:54 0 删除 编辑

Sizing Other SGA Structures
主要内容:
.监控和设置回滚段
.监控和设置JAVA POOL
.控制JAVA SESSION的内存使用量

[@more@]一、关于回滚段
1、LGWR何时写东西
.用户事务提交
.每过3S
.回滚缓存满1/3时
.当DBWn将修改过的缓存内容写到磁盘上时, 并且与之相对应的回滚数据没有写到磁盘
2、设置回滚段
.调整LOG_BUFFER参数
.默认值:Either 512K or 128K * the value of CPU_COUNT, whichever is greater.
SQL> SELECT 'v$parameter' "View name", name,
2 to_number (value,'9999999') "Value"
3 FROM v$parameter
4 WHERE name = 'log_buffer'
5 UNION
6 SELECT 'v$sgastat' "View name", name, bytes
7 FROM v$sgastat
8 WHERE name ='log_buffer';
二、Diagnosing Redo Log Buffer Inefficiency
1、使用动态视图分析回滚段的效率
a、等待时间
SQL> SELECT sid, event, seconds_in_wait, state
2 FROM v$session_wait
3 WHERE event = 'log buffer space%';
等待的引起原因通常为回滚段太小,或checkpointing,或归档。
在此情形下,应该如下处理:一、增加回滚段大小;二、增加checkpointing、归档的进程
(
名词解释:checkpoint是一个数据库事件,它将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件。
什么时候发生checkpoint?
我们知道了checkpoint会刷新脏数据,但什么时候会发生checkpoint呢?以下几种情况会触发checkpoint。
1.当发生日志组切换的时候
2.当符合LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL,fast_start_io_target,fast_start_mttr_target参数设置的时候
3.当运行ALTER SYSTEM SWITCH LOGFILE的时候
4.当运行ALTER SYSTEM CHECKPOINT的时候
5.当运行alter tablespace XXX begin backup,end backup的时候
6.当运行alter tablespace ,datafile offline的时候;
)
b、Redo Buffer Allocation Retries Statistic Ratio
该值最好接近0,绝对不能大于1
SQL> SELECT r.value "Retries", e.value "Entries",
2 r.value/e.value*100 "Percentage"
3 FROM v$sysstat r, v$sysstat e
4 WHERE r.name = 'redo buffer allocation retries'
5 AND e.name='redo entries';
c、 以下值为:联机日志已满,等待服务器分配归档日志空间
SQL> SELECT name, value
2 FROM v$sysstat
3 WHERE name='redo log space requests';
2、回滚段调优原则
a、没有Log Buffer Space等待
b、Redo Buffer Allocation Retries Statistic Ratio<1%
3、回滚段性能的深入研究
a、查看回滚段文件的I/O竞争
SQL> SELECT event, total_waits, time_waited, average_wait
2 FROM v$system_event
3 WHERE event like 'log file switch completion%';
解决方案:增加回滚段的文件
b、查看DBWn没有完成checkpointing,但LGWR再次需要该文件时
.在警告日志中,查看“CHECKPOINT NOT COMPLETE.”
.SQL> SELECT event, total_waits, time_waited, average_wait
2 FROM v$system_event
3 WHERE event like 'log file switch (check%';
解决方案:
.查看checkpoints的频率,设置FAST_START_MTTR_TARGET的合适值
.查看回滚段组的大小和数量
c、查看是否有不能归档或归档未完成
解决方案:
.查看物理存储是否已满
.增加归档日志组
.查看日志切换时的等待信息
SQL> SELECT event, total_waits, time_waited, average_wait
2 FROM v$system_event
3 WHERE event like 'log file switch (arch%';
d、查看LOG_ARCHIVE_MAX_PROCESSES的大小是否合适
4、如何减少回滚操作
a、 不用归档
b、 Direct Path loading with archiving can use Nologging mode.
c、 Direct Load Insert can use Nologging mode.
.适用表、表空间、索引
.假如一个表空间标记为NOLOGGING,对老对象无效,只能新对象有效
d、 Some SQL statements can use Nologging mode.
. CREATE TABLE ... AS SELECT
. CREATE INDEX
. ALTER INDEX ... REBUILD
. DIRECT PATH INSERT
三、监控JAVA缓存池
1、JAVA SESSION由以下参数制约
. JAVA_SOFT_SESSIONSPACE_LIMIT
默认值为1MB,超过此值将消息写入跟踪文件
. JAVA_MAX_SESSIONSPACE_SIZE
默认值4GB,超过此值时SESSION会被KILLED
超界时报以下异常:ORA-29554: unhandled Java out of memory condition
2、设置JAVA的SGA
. SHARED_POOL_SIZE:
– 8 KB per loaded class
– 50 MB for loading large JAR files
. Configure Oracle Shared Server
. JAVA_POOL_SIZE
– 24 MB default
– 50 MB for medium-sized Java application

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/594892/viewspace-971895/,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORALCE的异常处理
请登录后发表评论 登录
全部评论
  • 博文量
    44
  • 访问量
    52534