sql 執行過程
1.建立遊標
2.分析語句
把SQL從使用者程式載入到oracle‘s shared pool
if( hash_value(Sql_Statement) in hash_table == true )
(
soft_parse;
) else (
hard_parse;
)
soft_parse:主要是為了驗證使用者是否有許可權run this sql.
hard_parse:
1.語法分析
2.語義分析
3.透過資料字典驗證物件和列等資訊
4.同義詞轉換(如果存在)
5.使用者許可權驗證
6.根據最佳化器,生成執行計劃
7.載入library cache
(分析過程中要用到dictionary cache中的資訊,如查閱使用者許可權等)
3.描述查詢結果
選擇哪幾列
4.定義查詢的輸出
5.繫結變數
6.並行功能(如果需要)
7.執行
8.把fetch 的資料放入databuffer (如果在databuffer中不存在)
9.關閉遊標
把SQL從使用者程式載入到oracle‘s shared pool
if( hash_value(Sql_Statement) in hash_table == true )
(
soft_parse;
) else (
hard_parse;
)
soft_parse:主要是為了驗證使用者是否有許可權run this sql.
hard_parse:
1.語法分析
2.語義分析
3.透過資料字典驗證物件和列等資訊
4.同義詞轉換(如果存在)
5.使用者許可權驗證
6.根據最佳化器,生成執行計劃
7.載入library cache
(分析過程中要用到dictionary cache中的資訊,如查閱使用者許可權等)
3.描述查詢結果
選擇哪幾列
4.定義查詢的輸出
5.繫結變數
6.並行功能(如果需要)
7.執行
8.把fetch 的資料放入databuffer (如果在databuffer中不存在)
9.關閉遊標
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26764973/viewspace-757306/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一條Sql的執行過程SQL
- mysql執行sql語句過程MySql
- 【SQL】Oracle避免動態SQL,提高過程執行效率SQLOracle
- MySQL 中一條 sql 的執行過程MySql
- 一條 sql 的執行過程詳解SQL
- 一條sql語句的執行過程SQL
- maven外掛執行過程中自動執行sql檔案MavenSQL
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- GaussDB SQL查詢語句執行過程解析SQL
- Mysql之一次完成的sql執行過程MySql
- MySQL探祕(二):SQL語句執行過程詳解MySql
- MYSQL sql執行過程的一些跟蹤分析(一)MySql
- Mybatis原始碼分析(五)探究SQL語句的執行過程MyBatis原始碼SQL
- 精盡MyBatis原始碼分析 - SQL執行過程(一)之 ExecutorMyBatis原始碼SQL
- 精盡MyBatis原始碼分析 - SQL執行過程(二)之 StatementHandlerMyBatis原始碼SQL
- 精盡MyBatis原始碼分析 - SQL執行過程(三)之 ResultSetHandlerMyBatis原始碼SQL
- Java 程式執行過程Java
- jsp的執行過程JS
- 指令的執行過程
- Oracle - 執行過的SQL、正在執行的SQL、消耗資源最多的SQLOracleSQL
- MySQL系列之一條SQL查詢語句的執行過程MySql
- 從一條更新SQL的執行過程窺探InnoDB之REDOLOGSQL
- 執行緒池建立執行緒的過程執行緒
- 程式語言執行過程
- webpack loader 的執行過程Web
- Oracle ASM Rebalance執行過程OracleASM
- MapReduce 執行全過程解析
- Redis 命令的執行過程Redis
- crtmpserver 執行過程簡明分析Server
- 程式碼精簡執行過程
- Javascript中new的執行過程JavaScript
- Informix 執行緒sleep 分析過程ORM執行緒
- 「分散式技術專題」剖析一個SQL的解析及執行過程分散式SQL
- 精盡MyBatis原始碼分析 - SQL執行過程(四)之延遲載入MyBatis原始碼SQL
- javascript引擎執行的過程的理解--執行階段JavaScript
- 模擬主執行緒等待子執行緒的過程執行緒
- 原始碼分析OKHttp的執行過程原始碼HTTP
- 淺析Java程式的執行過程Java
- KVC中setValue:forKey:的執行過程