Oracle中SQL解析的主要流程
轉自
Oracle中SQL解析的主要流程:
我們說的遊標概念比較複雜,它可以是客戶端程式中的遊標,服務程式中的私有遊標,以及伺服器端共享池裡的共享遊標。假設一個遊標被開啟了,一般來說它的共享遊標資訊(包括執行計劃,最佳化樹等)總是會在SQL AREA裡,無需再次軟/硬解析。
SESSION_CACHED_CURSORS是Oracle中的一個初始化引數(修改必須重啟例項),指定了每個會話快取的遊標上限(保留在PGA中);客戶端程式中open cursor的要求仍會被傳遞給服務程式,服務程式首先掃描自身快取的遊標資訊,如果命中則可以避免軟解析,也有人稱它為“軟軟解析”。
HOLD_CURSOR是預編譯程式中的一個引數,它指定了私有遊標是否因該被快取,這裡不做展開。
在分析工具tkprof中hard parse與soft parse被同等對待,都被認為是parse;軟解析即會造成parse總數上升。
軟解析避免了硬解析過程中的幾個步驟,但仍包括了初始化的語法,語義解析並計算語句HASH值與SQL AREA中已有語句進行對比;若匹配則查詢最佳化等昂貴的操作得以避免。
另請注意,10053事件僅在硬解析過程中被觸發。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-697315/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【SQL】Oracle SQL處理的流程SQLOracle
- Oracle中SQL語句解析的步驟OracleSQL
- Oracle中SQL語句解析的步驟(轉)OracleSQL
- SQL 解析與執行流程SQL
- Oracle SQL的硬解析和軟解析OracleSQL
- Oracle SQL語句執行流程與順序原理解析OracleSQL
- ORACLE SQL解析之硬解析和軟解析OracleSQL
- SQL大致流程、SPM、軟軟、軟、硬解析SQL
- Oracle中的sql%rowcountOracleSQL
- Oracle中的sql hintOracleSQL
- Spark RDD中Runtime流程解析Spark
- 簡單對比MySQL和Oracle中的一個sql解析細節MySqlOracle
- Oracle中,一個Delete操作的流程Oracledelete
- 雲擴RPA研習社 | 解析流程開發主要步驟
- SQL-Hive中的Select From解析SQLHive
- sql中的group by 和 having 用法解析SQL
- DNS域名解析的流程是什麼?學習linux主要學什麼DNSLinux
- ZT Oracle中,一個Delete操作的流程Oracledelete
- Oracle中的遊標、硬解析、軟解析、軟軟解析、解析失敗Oracle
- oracle PL/SQL中的過載OracleSQL
- 關於 Spring 中 getBean 的全流程原始碼解析SpringBean原始碼
- GIS中XYZ瓦片的載入流程解析與實現
- SQL解析在美團點評中的應用SQL
- DNS解析流程DNS
- 工作流中的流程追溯!詳細解析Activiti框架中的歷史元件框架元件
- oracle中的sql%rowcount(R2)OracleSQL
- Oracle sql中的正規表示式OracleSQL
- ORACLE中SQL TRACE和TKPROF的使用OracleSQL
- Oracle中顯示阻塞樹的SQLOracleSQL
- oracle中merge into用法解析Oracle
- SQL Server 深入解析索引儲存(中)SQLServer索引
- oracle 對於SQL語句中物件名的解析順序OracleSQL物件
- compoesr 解析流程
- Flutter渲染流程解析Flutter
- SQL處理的主要步驟SQL
- Oracle PL/SQL中EXCEPTION用法OracleSQLException
- 原始碼解析MyBatis Sharding-Jdbc SQL語句執行流程詳解(文末有流程圖)原始碼MyBatisJDBCSQL流程圖
- Oracle PL/SQL程式碼中的註釋OracleSQL