【IT168 技术文档】
调整操作系统的内存需求
减少页的换入换出;
将SGA置于主存之中
使用SGA的主要目的是为了在内存中存储数据,以利于快速访问。通过设置初始化参数PRE_PAGE_SGA=YES,在数据库启动时,可以将整个SGA读入内存,这样会减少在启动后ORACLE达到全部性能的总的时间。
使用如下命令可以查看SGA所分配的内存以及其内部的结构:
SVRMGR> SHOW SGA
Total System Global Area 107720688 bytes
Fixed Size 69616 bytes
Variable Size 90701824 bytes
Database Buffers 16777216 bytes
Redo Buffers 172032 bytes
为单个用户分配足够的内存
调整redo log缓冲区
参数LOG_BUFFER指定了REDO LOG的缓冲区的保留大小。LOG写进程(LGWR)在该缓冲区被填充时总是运行的,在新的LOG进入缓冲区时,原来的LOG应已经写入磁盘。
调整私有sql和pl/sql区
标识不必要的语法分析调用
1. 在sql跟踪工具有效时运行应用
2. 查看视图V$SQLAREA view
SVRMGR> select sql_text,parse_calls,executions from v$sqlarea ;
如果parse_calls值接近execution值,可能就是不断地对sql语句进行语法分析
3. 执行如下查询:
select *from v$statname where name in (‘parse_count(hard)’,’execute_count’);
其结果类似于:
statistic#, name
----------------------------------
100 parse_count
90 execute_count
然后执行如下查询:
select * from v$sesstat where statistics# in(90,100) order by value , sid ;
减少不必要的语法分析调用
初始化参数open_cursors的最大值依赖于操作系统,最少值为5