select 語句的解析過程
select c2 from t1 where c1='A';
1、做一個語法解析,判斷有沒有錯誤。
2、把該sql轉換為ASCII字元,就是一串數字。針對這串數字運用hash函式,得到了hash value,假設是3.
3、到3號bucket上遍歷,查詢該sql是否存在。
4、假設不存在,到shared pool裡找一塊連續的可用空間(叫做一個chunk),把sql文字放入該chunk。
5、把該chunk放到3號bucket上。
6、開始進行硬解析:
a、命名轉換。
b、文法分析,判斷t1表是否存在、c1列和c2列是否存在、使用者是否有許可權看t1表。該過程中,需要訪問資料字典,為了加快速度,把資料欄位資訊從資料塊裡抽取出來,
組成行列形式快取在shared pool裡。這塊空間就叫做dict cache。
c、生成執行計劃
d、快取執行計劃。
假設上面第三步中,到3號bucket上找到該sql,則進行軟解析。
還有一宗解析,叫做不解析。
1、做一個語法解析,判斷有沒有錯誤。
2、把該sql轉換為ASCII字元,就是一串數字。針對這串數字運用hash函式,得到了hash value,假設是3.
3、到3號bucket上遍歷,查詢該sql是否存在。
4、假設不存在,到shared pool裡找一塊連續的可用空間(叫做一個chunk),把sql文字放入該chunk。
5、把該chunk放到3號bucket上。
6、開始進行硬解析:
a、命名轉換。
b、文法分析,判斷t1表是否存在、c1列和c2列是否存在、使用者是否有許可權看t1表。該過程中,需要訪問資料字典,為了加快速度,把資料欄位資訊從資料塊裡抽取出來,
組成行列形式快取在shared pool裡。這塊空間就叫做dict cache。
c、生成執行計劃
d、快取執行計劃。
假設上面第三步中,到3號bucket上找到該sql,則進行軟解析。
還有一宗解析,叫做不解析。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29952014/viewspace-2120321/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL語句的解析過程 遊標週期SQL
- GaussDB SQL查詢語句執行過程解析SQL
- 【體系結構】sql語句解析過程小實驗 軟解析、硬解析SQL
- SQL語句的處理過程SQL
- DML 語句處理過程
- SQL SELECT 語句SQL
- Go select 語句Go
- CoreData執行過程的sql語句SQL
- SQL語句的處理過程修正SQL
- 剖析SQL語句的執行過程SQL
- Oracle SQL 語句的執行過程OracleSQL
- SQL Server中SELECT語句執行順序解析SQLServer
- 【SQL】14 UNION 操作符、SELECT INTO 語句、INSERT INTO SELECT 語句、CREATE DATABASE 語句、CREATE TABLE 語句SQLDatabase
- C++通過occi執行select語句、儲存過程、函式,取cursor值示例C++儲存過程函式
- mysql執行sql語句過程MySql
- python中try語句的工作過程Python
- 一條sql語句的執行過程SQL
- 淺談SQL語句的執行過程SQL
- 理解oracle執行sql語句的過程OracleSQL
- 一條SQL語句的優化過程SQL優化
- Oracle 儲存過程中的DDL語句Oracle儲存過程
- SQL update select語句SQL
- 學習MySQL的select語句MySql
- MySQL儲存過程語句及呼叫MySql儲存過程
- SQL語句執行過程詳解SQL
- sql語句執行過程小結SQL
- ORACLE 查詢語句處理過程(Oracle
- PostgreSQL的insert語句執行過程分析SQL
- OCP課程3:SQL之使用SELECT語句檢索資料SQL
- Go select語句詳解Go
- SQL語言基礎(SELECT語句)SQL
- 通過SQL語句提取儲存過程中的內容SQL儲存過程
- Oracle一個SQL語句的處理過程(轉)OracleSQL
- oracle 儲存過程以及plsql語句塊Oracle儲存過程SQL
- 10_SQL語句執行過程剖析SQL
- SQL語句中SELECT語句的執行順序SQL
- 查詢語句(SELECT)的最佳化
- 圖解Go select語句原理圖解Go