oracle 清除相關物件的執行計畫

2021-05-22 23:03:29 字數 521 閱讀 8335

什麼時候 shared pool 裡面的 shared sql area 被 清除flush ?

幾種情況:

1. 相關表 ,cluster , index 等,跟物件相關的, 執行過analyze 語句後,oracle會清除原來的快取。

2. 相關物件被修改過,那麼這個sql area 就變成無效狀態,下一次讀的時候會重新解析reparse

3. 資料庫global database name 被修改過

4.執行alter system  flush shared_pool 的時候。

就是這幾種情況下, 執行計畫(還有其他的資訊) 都會被重新整理。

上面這幾種情況參考 oracle concept 第8章。

根據上面的幾種情況,我們可以選擇analyze相關物件,修改相關物件來清除相關物件的執行計畫。

另外10g以後的資料庫可以通過dbms_shared_pool.purge('address,hash','c',1)清除指定的游標物件,1是清除v$sqlarea和v$sql中的記錄。

oracle執行計畫相關概念

oracle執行計畫相關概念 1.什麼是執行計畫?為什麼要了解執行計畫?為了執行一條sql語句,oracle可能必須要執行某些步驟的操作,每一步驟可能是從資料庫中物理檢索資料行,或者用某種方法準備資料行,供發出語句的使用者使用。oracle用來執行語句的這些步驟的組合即為執行計畫。執行計畫是sql優...

oracle物件的定義 執行許可權

在oracle8i以前,所有已編譯儲存物件 包括packages,procedures,functions,triggers,andviews 只能以定義者 definer 身份解析執行 從oracle8i開始,oracle引入呼叫者 invoker 許可權,使得物件可以以呼叫者身份和許可權執行。1...

視窗物件的自動清除

乙個mfc視窗物件包括兩方面的內容 一是視窗物件封裝的視窗,即存放在m hwnd成員中的hwnd 視窗控制代碼 二是視窗物件本身是乙個c 物件。要刪除乙個mfc視窗物件,應該先刪除視窗物件封裝的視窗,然後刪除視窗物件本身。刪除視窗最直接方法是呼叫cwnd destroywindow或 destroy...