SQL在shared pool中的解析過程問題
Oracle 10.2.0.4
在網路上看到SQL解析的過程如下,其他過程都瞭解, 其中 邏輯最佳化 部分不是太清楚如何運作的,
生成的語法語義上等同的新的SQL語句是什麼樣子的 ? 難道是類似將SQL中的同義詞轉化為對應的
具體的table資訊或其他實際的 object 等過程 ?
(1) 包含VPD的約束條件
(2) 語法,語義以及訪問許可權的檢查
(3) 將父遊標儲存到庫快取
只要不存在共享的父遊標,就會在庫快取中分配一些記憶體,並將新產生的父遊標儲存進去。
與父遊標有關的關鍵資訊就是這個sql語句的文字。
(4) 邏輯最佳化 -- 用一定的轉換技巧,生成語法語義上等同的新的sql語句。
(5)物理最佳化 -- 首先,生成與每個邏輯最佳化產生的sql語句有關的執行計劃,接著。根據資料字典找到相關的統計資訊或者動態收集
的統計資訊,計算出一個與執行計劃相關的開銷。最後,選中最低開銷的執行計劃。簡單來說,查詢最佳化器透過探索搜尋空間來尋找最有效的
執行計劃
(6) 將子游標儲存到庫快取 -- 首先分配記憶體,然後將共享子游標儲存進去,最後將它與父遊標關聯,與子游標有關的關鍵
內容是執行計劃和執行環境,一旦儲存到庫快取,父遊標與子游標就可以分別透過檢視v$sqlarea和v$sql被具體化。
如果是這樣的,那麼上面的1~6 的順序,和韓思捷的 <>中第五章的硬解析的步驟順序不一樣。
其中 :
1. 檢查文法, 若有問題,退出解析
2. 檢查物件和列是否存在, 若有問題,退出解析
3. 將物件進行名稱轉換,比如同義詞轉換為實際的物件, 若有問題,退出解析
4. 檢查物件的許可權 , 若有問題,退出解析
.......
在網路上看到SQL解析的過程如下,其他過程都瞭解, 其中 邏輯最佳化 部分不是太清楚如何運作的,
生成的語法語義上等同的新的SQL語句是什麼樣子的 ? 難道是類似將SQL中的同義詞轉化為對應的
具體的table資訊或其他實際的 object 等過程 ?
(1) 包含VPD的約束條件
(2) 語法,語義以及訪問許可權的檢查
(3) 將父遊標儲存到庫快取
只要不存在共享的父遊標,就會在庫快取中分配一些記憶體,並將新產生的父遊標儲存進去。
與父遊標有關的關鍵資訊就是這個sql語句的文字。
(4) 邏輯最佳化 -- 用一定的轉換技巧,生成語法語義上等同的新的sql語句。
(5)物理最佳化 -- 首先,生成與每個邏輯最佳化產生的sql語句有關的執行計劃,接著。根據資料字典找到相關的統計資訊或者動態收集
的統計資訊,計算出一個與執行計劃相關的開銷。最後,選中最低開銷的執行計劃。簡單來說,查詢最佳化器透過探索搜尋空間來尋找最有效的
執行計劃
(6) 將子游標儲存到庫快取 -- 首先分配記憶體,然後將共享子游標儲存進去,最後將它與父遊標關聯,與子游標有關的關鍵
內容是執行計劃和執行環境,一旦儲存到庫快取,父遊標與子游標就可以分別透過檢視v$sqlarea和v$sql被具體化。
如果是這樣的,那麼上面的1~6 的順序,和韓思捷的 <>中第五章的硬解析的步驟順序不一樣。
其中 :
1. 檢查文法, 若有問題,退出解析
2. 檢查物件和列是否存在, 若有問題,退出解析
3. 將物件進行名稱轉換,比如同義詞轉換為實際的物件, 若有問題,退出解析
4. 檢查物件的許可權 , 若有問題,退出解析
.......
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-676970/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 共享SQL區在shared pool中釋放的條件SQL
- SHARED_POOL解析
- 【PL/SQL】在PL/SQL中執行重新整理Shared Pool命令SQL
- 【Shared Pool】使用DBMS_SHARED_POOL包將PL/SQL大物件儲存到Shared PoolSQL物件
- SQL 解析的過程SQL
- shared_pool_spare_free.sqlSQL
- MySQL儲存過程中的sql_mode問題MySql儲存過程
- SHARED POOL中KGH: NOACCESS佔用大量記憶體的問題分析記憶體
- shared_pool的sql命中率SQL
- 清除shared pool中某條sql的執行計劃SQL
- PL/SQL Program Units and the Shared Pool (89)SQL
- 使用DBMS_SHARED_POOL包將PL/SQL大物件儲存到Shared PoolSQL物件
- 【實驗】sql語句在shared_pool中的查詢(程式 繫結變數)SQL變數
- 分割槽表放入keep pool,recycle pool的問題及解析
- dbms_shared_pool keep物件到share pool中物件
- [20120229]無效sql語句與shared pool的問題.txtSQL
- Shared pool的library cache lock/pin及硬解析
- 爬蟲過程中遇到的問題爬蟲
- Oracle shared poolOracle
- SQL解析過程中的查詢轉換 - Transforming QueriesSQLORM
- 等待模擬-library cache shared pool 硬解析
- _shared_pool_reserved_pct or shared_pool_reserved_size with ASMMASM
- 安裝yeoman,grunt過程中的問題
- 學習vue過程中遇到的問題Vue
- STATSPACK安裝過程中遇到的問題
- 10g中同時設定了SGA_TARGET和SHARED_POOL_SIZE的問題
- 通過錯誤的sql來測試推理sql的解析過程SQL
- 記錄在使用Django開發過程中遇到的問題No.2Django
- zt_Oracle shared pool internals_共享池_shared_poolOracle
- SHARED POOL總結
- 理解Oracle Shared PoolOracle
- zt_如何清除shared_pool共享池中某個特定sql_令其重新解析SQL
- 在 SQL Server 的儲存過程中呼叫 Com 元件 (轉)SQLServer儲存過程元件
- 電商APP測試過程中遇到的問題APP
- Vue 實踐過程中的幾個問題Vue
- android開發過程中遇到的問題Android
- ambari安裝過程中的問題彙總
- [轉]RAC 安裝配置過程中的問題