庫緩存的命中率:
select 1-sum(GETHITS)/sum(GETS) from v$librarycache;
1-SUM(GETHITS)/SUM(GETS)
------------------------
0.326853256123903
庫緩存的視圖
select * from v$db_object_cache;
關於遊標的視圖和參數
v$sql、v$sqlarea、v$open_cursor
在v$sql這個視圖中DISK_READS,BUFFER_GETS,CPU_TIME,ELAPSED_TIME這四個列在調優SQL語句時最爲重要。針對SQL語句性能問題,選擇調優物理讀,邏輯讀最多的,或最耗CPU時間的SQL語句進行調節,往往可以取得令人滿意的性能增長。
select * from (select t.SQL_FULLTEXT,t.DISK_READS,t.BUFFER_GETS,t.CPU_TIME,t.ELAPSED_TIME from v$sql t order by 2,3,4,5 desc) tt where rownum<=3;
SQL_FULLTEXT DISK_READS BUFFER_GETS CPU_TIME ELAPSED_TIME
-------------------------------------------------------------------------------- ---------- ----------- ---------- ------------
select decode(open_mode, 'MOUNTED', 0, 0 0 0 507010
'RE
select count(*), NULL, NULL from x$kccbp where bitand(bpext, 256) = 256 and bita 0 0 0 124805
select size_for_estimate, size_factor * 100 f, 0 0 0 46673
select * from v$sqlarea;
v$sqlarea和v$sql的列幾乎是一模一樣的。在v$sqlarae中彙總了子游標的數據。
select * from v$sqlarea;
select * from v$sqltext;
v$sqltext視圖是顯示過長文本的,可以和v$sqlarea中的hash_value列進行連接,得到sql文本的具體值;
select * from v$sqltext t where t.HASH_VALUE=1133510698
每個會話最多打開的遊標的個數:
show parameter open_cursor
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 300
select * from v$open_cursor;
v$open_cursor視圖專門用來查看當前會話打開的遊標信息。它只能查看當前花卉打開的遊標。
show parameter cursor_shar
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cursor_sharing string EXACT
alter system set cursor_sharing=similar;
System altered
下面的參數控制着一個會話可以緩存多少個遊標
show parameter session_cached_cursor
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
session_cached_cursors integer 50