以前下载了一个关于Oracle 视图的pdf,水平有限,没看懂多少。
版本信息:
select * from v$version;
数据库信息:
select name, created, log_mode from v$database;
基本的许可信息
select * from v$license;
数据库中已安装的产品项
select * from v$option;
内存分配摘要(V$SGA)
内存分配的细节(V$SGASTAT)
测定数据的命中率(V$SYSSTAT)
了数据库中设置的数据块缓存区的命中率。这个信息可以帮助您判断系统何时需要更多的数
据缓存(DB_CACHE_SIZE),或者系统的状态何时调整得不佳(二者均将导致较低的命中率)。
通常情况下,您应当确保读数据的命中率保持在95%以上。将系统的命中率从98%提高到99%,
可能意味着性能提高了100%(取决于引起磁盘读操作的语句)。
select 1-(sum(decode(name, 'physical reads', value,0))/
(sum(decode(name, 'db block gets', value,0)) +
(sum(decode(name, 'consistent gets', value,0)))))
"Read Hit Ratio"
from v$sysstat;
Read Hit Ratio
--------------
.996558641
在Oracle 10g中,也可以直接获得V$SYSMETRIC中的 AWR 信息:
select metric_name, value
from v$sysmetric
where metric_name = 'Buffer Cache Hit Ratio';
METRIC_NAME VALUE
------------------------------------------------------ ----------
Buffer Cache Hit Ratio 100
上面程序清单中的命中率很高,但这并不意味着系统已经调整至最佳状态。很高的命
中率也可能意味着查询使用了过度的索引。如果这个命中率低于95%,您可能需要增加
init.ora参数DB_CACHE_SIZE,或者调整一些引起磁盘读取操作的查询(仅当这样做是可行
的并且确实有效的情况下)。一种例外情况就是分布在不同块中的数据分布的极不平衡。如
果不考虑这种可能性,那么命中率低于90%几乎总意味着系统调整得很糟糕,要么就是某些
人不切实际地设计,使每个数据块的数据都极不平衡。(参阅第4章,查看有关命中率的其
他信息)。