1. Oracle自带性能监控工具
@ORACLE_HOME/rdbms/admin/awrreport.sql脚本生成HTML报告,对比不同时段(如1小时、24小时)的性能指标,识别CPU、I/O、SQL执行等瓶颈。SELECT * FROM v$active_session_history视图查看当前活跃会话,或结合AWR生成ASH报告,快速定位当前性能问题。ALTER SESSION SET sql_trace = TRUE开启SQL跟踪,记录会话的所有SQL执行细节(如执行时间、逻辑读、物理读)。使用tkprof工具格式化跟踪文件(如tkprof trace_file.trc output.txt),分析慢SQL的执行计划和资源消耗。v$sql、v$session、v$system_event、v$librarycache),用于实时查询数据库状态。例如,v$sql查看SQL执行统计(如elapsed_time、disk_reads)、v$session查看会话信息(如status、machine)、v$system_event查看系统等待事件(如db file sequential read)。2. 第三方监控工具
check_oracle)监控Oracle数据库的可用性(如监听器状态、服务状态)、性能指标(如活动会话数、锁数量)。支持分布式监控,可与NSCA、PNP4Nagios等集成实现报警和图形化。oracledb_exporter暴露),Grafana负责可视化展示(如SQL执行时间趋势、表空间使用率)。支持告警规则配置(如alertmanager),适合云原生环境。3. 操作系统工具
top -u oracle过滤Oracle进程,识别占用资源高的会话或进程。iostat -xz 1 5命令查看每秒的I/O统计信息,判断是否存在I/O瓶颈。vmstat 1 5命令查看每秒的系统状态,识别CPU瓶颈(如us高)、内存不足(如si/so高)等问题。pmon、smon、dbwr),使用ps -ef | grep ora_命令列出所有Oracle进程,检查是否有异常进程(如僵尸进程)。4. 高级诊断工具
perf top -p <oracle_pid>实时查看热点函数,或perf record -p <oracle_pid> -g记录性能数据并生成火焰图,辅助定位内核或Oracle内部的性能问题。