以下是一个常见的Oracle性能脚本,可以通过查询v$视图和动态性能视图来帮助分析数据库性能。如果只需要输出指标项及其对应的数值,可以使用awk命令进行处理:
SELECT 'Sessions Current' NAME, COUNT(*) VALUE FROM V$SESSION;
SELECT 'Sessions Highwater' NAME, VALUE FROM V$SYSTAT WHERE STATISTIC# = 12;
SELECT 'PGA Aggregate Target (bytes)' NAME, ROUND(VALUE/1024/1024) VALUE FROM V$PGASTAT WHERE NAME = 'aggregate PGA target parameter';
SELECT 'SGA Size (bytes)' NAME, SUM(VALUE) VALUE FROM V$SGA;
SELECT 'Redo Log Space Requested (bytes)' NAME, SUM(BYTES)/1024/1024 VALUE FROM V$LOG_HISTORY WHERE FIRST_TIME >= SYSDATE-1 AND OPERATION LIKE '%ARCH%';
SELECT 'Buffer Cache Hit Ratio (%)' NAME, ROUND(((1 - (SUM(DECODE(NAME,'physical reads',VALUE,0)) / SUM(DECODE(NAME,'db block gets',VALUE,0)))) * 100),2) VALUE FROM V$SYSSTAT WHERE NAME IN ('physical reads','db block gets');
SELECT 'Library Cache Hit Ratio (%)' NAME, ROUND((SUM(PINS)/(SUM(PINS)+SUM(RELOADS))) * 100 ,2) VALUE FROM V$LIBRARYCACHE;
执行以上SQL语句后,会得到类似如下的结果:
NAME VALUE
------------------------- ----------
Sessions Current 3
NAME VALUE
------------------------- ----------
Sessions Highwater 8
NAME VALUE
------------------------------------ ----------
PGA Aggregate Target (bytes) 2048
NAME VALUE
---------------------------- ---
SGA Size (bytes) 1090519040
NAME VALUE
------------------------------------------- ----------
Redo Log Space Requested (bytes) 28.125
NAME VALUE
---------------------------------- ---
Buffer Cache Hit Ratio (%) 99.98
NAME VALUE
---------------------------- ---
Library Cache Hit Ratio (%) 97.12
这些结果只包含指标项及其对应的数值,中间用空格分隔。其中awk命令通过正则表达式匹配数字和字母组成的字符串,并将它们输出。