oracle sql解析等碎片知識

2021-09-25 11:32:36 字數 953 閱讀 3407

oracle中的sql是如何執行的:

1、語法檢查,如有錯誤,則報語法錯誤

2、語義檢查,如列不存在,表不存在等

3、許可權檢查

4、共享池檢查:

1、作用是快取sql語句和語句的執行計畫

2、首先對sql語句進行hash計算,根據hash值查詢是否在共享池中,如果有則是軟解析,直接執行

3.不存在共享池中,跳到第5步,硬解析。

5、優化器:執行硬解析,建立解析樹,生成執行計畫

6、根據解析樹和執行計畫執行

如何避免硬解析?

繫結變數,如:

一般情況查詢:select * from player where player_id = 10001;

繫結變數查詢:select * from player where player_id = :player_id;

問,繫結變數該如何操作?

答:儲存過程中

l_param1:=『a』;l_param2:=『b』;

l_sql:='select count(*) into :x from table1 where col_1=:y and col_2=:z ';

execute immediate l_sql into l_count using l_param1,l_param2;

例2:variable i number; – 定義變數

exec :i :=1; – 賦值

select * from t where id=:i – 查詢(繫結變數)

select sql_text,parse_calls from v$sql where sql_text like 『select * from t where id=%』 – 查詢解析

ddl:資料庫定義語言,create、drop、alert

dml:資料庫操作語言,增刪改查

dcl:資料控制語言:用於定義資料庫使用者的許可權

oracle sql 解析過程

解析有兩種 硬解析和軟解析 parse 1 從共享池的庫緩衝區中搜尋,該語句是否曾經執行過,凡是執行過的sql語句,oracle會使用hash函式進行計算,產生乙個很小的文字記錄,如果是第一次執行,則進入第二步。2 檢查語句 許可權等等 許可權資訊是存放在oracle的資料字典中,oracle先從共...

Oracle SQL語句解析過程

目錄 oracle sql語句解析過程 1 軟硬解析 2 sql解析過程 sql語句在到達oracle例項後,需要先進行解析,分析出最優的執行計畫後,再按照執行計畫,開始執行sql。根據能否復用執行計畫,解析過程可以分析以下兩大類 注意 oracle中只有完全相同的語句,包大小寫 空格 換行都要求一...

Oracle SQL的硬解析 軟解析 軟軟解析

oracle中每條sql在執行前都要解析,解析分為硬解析 軟解析 軟軟解析。oracle會快取dml語句,相同的dml語句會進行軟解析。但不會快取ddl語句,所以ddl每次都做硬解析。硬解析是乙個很耗時的操作,所以應用程式內部很少執行執行ddl。ddl一般在部署前執行。sql語句執行步驟 1.語法檢...