2011-08-30 67 views
2

我想要測量oracle 11g數據庫環境中的sql語句(例如簡單的創建或插入語句)的RAM使用情況。如何獲得oracle11g數據庫中進程的RAM使用情況?

我試圖通過使用dbms_space來獲取它,但它似乎只是獲取磁盤空間。

我也發現這個網站: http://www.dba-oracle.com/m_memory_usage_percent.htm

但聲明

select 
* 
from 
v$sql 
where sql_text like {my table} 

不返回創建語句。

+0

在該頁面的頂部有一個鏈接[查看用於在Oracle9i執行計劃操作RAM(http://www.dba-oracle.com/m_memory_usage_percent.htm )。 – Ben

回答

2

見上文評論:

select operation, 
     options, 
     object_name name, 
     trunc(bytes/1024/1024) "input(MB)", 
     trunc(last_memory_used/1024) last_mem, 
     trunc(estimated_optimal_size/1024) opt_mem, 
     trunc(estimated_onepass_size/1024) onepass_mem, 
     decode(optimal_executions, null, null, 
      optimal_executions||'/'||onepass_executions||'/'|| 
      multipasses_executions) "O/1/M" 
    from v$sql_plan p 
    , v$sql_workarea w 
where p.address=w.address(+) 
    and p.hash_value=w.hash_value(+) 
    and p.id=w.operation_id(+) 
    and p.address= (select address 
         from v$sql 
        where sql_text like '%my_table%') 
+0

不工作:ORA-01427,子查詢返回多行。此外,我正在查找的創建和插入語句不在v $ sql中。 – Hauke

+0

哦,有一個錯字multipasses_exections - > multipasses_executions – Hauke

+0

@Hauke,謝謝;錯字固定。返回多於一行的子查詢意味着v $ sql有多個列表,其中包含表名。你必須更具體。 – Ben

相關問題