WEB开发网
开发学院数据库Oracle 详解Oracle几种性能调优方法 阅读

详解Oracle几种性能调优方法

 2009-04-02 13:12:30 来源:WEB开发网   
核心提示: SQL〉SELECT SUM(pins),SUM(reloads) FROM v$librarycache;如果sum(reload)/sum(pins)≈0,说明Library Cache的命中率比较合适,详解Oracle几种性能调优方法(2),若大于1,则需要增加共享池(S

SQL〉SELECT SUM(pins),SUM(reloads) FROM v$librarycache;

如果sum(reload)/sum(pins)≈0,说明Library Cache的命中率比较合适,若大于1,则需要增加共享池(SHARED-POOL-SIZE)的大小(在初始化参数文件中)。

调整数据字典高速缓存(Dictionary Cache)

数据字典高速缓存包括了有关数据库的结构、用户、实体信息等。数据字典的命中率对系统有很大的影响。命中率的计算中,getmisses 表示失败次数,gets表示成功次数。

查询V$ROWCACHE表:

SQL>SELECT (1-(SUM(getmisses)/(SUM(gets)+SUM(getmisses))))*100
FROM v$rowcache;

如果该值>90%,说明命中率合适。否则,应增大共享池的大小。

调整数据库缓冲区高速缓存

Oracle 在运行期间向数据库高速缓存读写数据,高速缓存命中表示信息已在内存中,高速缓存失败意味着Oracle必需进行磁盘I/O。保持高速缓存失败率最小的关键是确保高速缓存的大小。初始化参数DB-BLOCK-BUFFERS控制数据库缓冲区高速缓存的大小。可通过查询V$SYSSTAT命中率,以确定是否应当增加DB-BLOCK-BUFFERS的值。

SQL>SELECT name,value FROM V$SYSSTAT
WHERE name IN (’dbblock gets’,’consistent gets’,’physical reads’);

通过查询结果

命中率=1-physical reads/(dbblock gets+consistent gets)

如果命中率<0.6~0.7,则应增大DB-BLOCK-BUFFERS。

调整磁盘I/O

磁盘I/O是系统性能的瓶颈,解决好磁盘I/O,可明显提高性能。通过查询V$FILESTAT可以知道每个物理文件的使用频率(phyrds表示每个数据文件读的次数,phywrts表示每个数据文件写的次数)

Tags:详解 Oracle 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接