sqlpiece_rec.sql_text;
18.end loop;
19.return temp_sqltxt;
20.end GetSQLtxt;
至此已经找到影响Oracle 性能的对象和sql语句,可以有针对性地优化
4. 把等待事件记入跟踪文件
重点:如果在跟踪系统上的等待事件时,由于某种原因遇到了麻烦,则可以将这些等待事件记入一个跟踪文件。
方法:
对于当前会话:
1.alter session set timed_statistics=true;
2.alter session set max_dump_file_size=unlimited;
3.alter session set events '10046 trace name context forever, level 12';
执行应用程序,然后在USER_DUMP_DEST指出的目录中找到跟踪文件。
查看文件中以词WAIT开始的所有行。
对于其它的会话
确定会话的进程ID(SPID)。下面的查询识别出名称以A开始的所有用户的会话进程ID:
1.select S.Username, P.Spid from V$SESSION S, V$PROCESS P
2.where S.PADDR = P.ADDR and S.Username like 'A%';
以 sysdba 进入sqlplus执行
1.alter session set timed_statistics=true;
2.alter session set max_dump_file_size=unlimited;
3.oradebug setospid <SPID>
4.oradebug unlimit
5.oradebug event 10046 trace name context forever, level X /* Where X = (1,4,8,12) */
跟踪某个时间间隔得会话应用程序。
在USER_DUMP_DEST 的值指出的目录中利用SPID查看跟踪文件
查看文件中以词WAIT开始的所有行。
5. 确定当前OS瓶颈
(1)Windows NT上的监控
使用控制面板-〉管理工具-〉Oracle 性能即可
(2)UNIX上的监控
使用通用性的工具,包括sar、iostat、cpustat、mpstat、netstat、top、osview等。
1) CPU使用情况
sar -u 5 1000
%sys和%wio的数值应该小于百分之10到15
2) 设备使用情况
sar -d 5 1000
在%busy超过60%时,最佳设备利用率开始降低;在具有足够磁盘高速缓存的系统上,认为avserv为100毫秒的值非常高。
3) 虚拟内存使用情况
vmstat -S 5 1000
执行队列(r)应该明确的平均小于(2*CPU数目)
6.优化所需的成分(应用程序、数据库、I/O、争用、OS等)。
7.跟踪并实施更改控制过程。
8.测量并记录当前Oracle 性能
9.重复步骤3到7,直到满足优化目标
全新的路由器不仅让你更稳定快速地连接无线网络,更可以让家中的智能设备连接在一起。
关键词:对ORACLE性能调优的基本方案