Oracle數字字典包含一個鮮為人知的v$session_longops視圖。v$session_longops視圖可以使Oracle專家減少運行時間很長的DDL和DML語句的運行時間。
例如在數據倉庫環境中,即使使用並行索引創建技術,構建一個很多G字節大的索引需要耗費很多個小時。這裡你就可以查詢v$session_longops視圖快速找出一個特定的DDL語句已經完成了多少。其實v$session_longops視圖也可以用於任何運行時間很長的操作,包括運行時間很長的更新操作。
下面的腳本將顯示一個狀態信息,說明了運行時間很長的DDL操作已經使用的時間。注意你必須從v$session中取得SID並將其插入到下面的SQL語句中:
select
sid,
message
from
v$session_longops
where
sid = 13
order by
start_time;
這裡是一個輸出的例子,顯示了運行時間很長的CREATE INDEX語句的運行過程。
SID MESSAGE
--- -------------------------------------------------------------------
11 Table Scan: CUST.PK_IDX: 732 out of 243260 Blocks done