查看SGA記憶體區域的負載
Oracle9i使用了一些新的內部視圖或者在現有的視圖中加入新的列來幫助查看Oracle9i中的內部記憶體分配情況。以下的新V$視圖可以幫助監視Oracle9i連接的記憶體使用。
V$PROCESS -在Oracle9i中加入了三個新的列以監視PGA記憶體的使用,新列的名字是pga_used_mem, pga_alloc_mem 和pga_max_mem。
V$SYSSTAT -加入了很多新的統計行,包括有area statistics for optimal, one-pass和multi-pass。
V$PGASTAT -該新視圖展示了全部後臺進程和專用連接的PGA記憶體使用。
V$SQL_PLAN--這個新視圖包含了全部當前執行的SQL的執行計劃資訊。對於需要最優化的SQL語句的性能調整專家來說這是非常吸引人的。
V$WORKAREA -這個新視圖提供了Oracle9i連接的累積記憶體統計的詳細資訊。
V$WORKAREA_ACTIVE - 這個新的視圖提供了當前全部正在執行的SQL語句的內部記憶體使用資訊。
它們的目的是通過這些V$視圖來監視SGA中的記憶體使用,然後根據Oracle實例的處理要求,通過ALTER SYSTEM命令重新分配記憶體。我們以下來看一些這些新的Oracle9i特性和腳本,它可以幫助我們查看詳細的記憶體使用。
當然我們不可能在這裡詳述所有的技術,以下就讓我們看一個簡單的例子,它通過使用V$SYSSTAT視圖來決定何時重新設置PGA_AGGREGATE_TARGET參數。
以下的查詢可以得到自數據庫實例啟動後work areas被執行的全部數目和百分比。
work_area.sql
select
name profile,
cnt,
decode(total, 0, 0, round(cnt*100/total)) percentage
from
(
select
name,
value cnt,
(sum(value) over ()) total
from
v$sysstat
where
name like 'workarea exec%'
);
|
這個查詢的輸出可能如下:
PROFILE CNT PERCENTAGE
----------------------------------- ---------- ----------
workarea executions - optimal 5395 95
workarea executions - onepass 284 5
workarea executions - multipass 0 0
|
這個查詢的輸出是用來告訴DBA何時動態調整PGA_AGGREGATE_TARGET參數。在通常的情況下,如果multi-pass的執行大於0,就需要增加PGA_AGGREGATE_TARGET的值,並且在optimal executions是100%時減少它的值。(T004)
<<上一頁
1
2
3