在CentOS下使用SQL*Plus进行性能监控,可通过以下方法实现:
SELECT event, wait_class, count(*) AS wait_count FROM v$session_event GROUP BY event, wait_class;SELECT a.session_id, a.oracle_username, b.object_name FROM v$locked_object a, dba_objects b WHERE a.object_id = b.object_id;SELECT * FROM v$sysstat WHERE name IN ('parse count (total)', 'db block gets', 'physical reads');EXPLAIN PLAN分析SQL语句执行路径,定位性能瓶颈。sqlplus -S /nolog静默模式执行SQL,结合cron定时任务定期采集数据,例如:#!/bin/bash
sqlplus -S /nolog <<EOF
connect / as sysdba
set heading off
SELECT 1 - ((physical.value - direct.value) / logical.value) "Buffer Cache Hit Ratio"
FROM v$sysstat physical, v$sysstat direct, v$sysstat logical
WHERE physical.name = 'physical reads' AND direct.name = 'physical reads direct' AND logical.name = 'session logical reads';
exit
EOF
SET ARRAYSIZE 50:增加单次从数据库读取的行数,减少网络交互。SET LINESIZE 200:设置输出行宽,避免换行影响性能。SET FEEDBACK OFF:关闭执行结果反馈,减少输出量。SELECT *,使用索引,合理使用绑定变量,减少全表扫描。top、vmstat、iostat等命令监控CPU、内存、磁盘I/O等系统资源使用情况,确保硬件资源充足。