PL控制的主要優點?
PL/SQL是一種高性能的基于事務的語言,可以運行在任何ORACLE環境中,支持所有的數據處理命令。SQL的數據定義和數據控制元素通過使用PL/SQL程序單元來處理。
。PL/SQL支持所有SQL數據類型和所有SQL函數,還支持所有ORACLE對象類型。
的。PL/SQL塊可以命名并存儲在ORACLE服務器中,也可以由其他PL/SQL程序或SQL命令調用。任何客戶機/服務器工具都可以訪問PL/SQL程序,具有良好的可重用性。
您可以使用ORACLE數據工具來管理存儲在服務器中的PL/SQL程序的安全性。您可以授權或撤銷數據庫的其他用戶訪問PL/SQL程序的能力。
的。PL/SQL代碼可以使用任何ASCII文本編輯器編寫,因此對于ORACL
oracle解析規則?
SQL的處理過程描述如下:
1.檢查是否有打開的光標。如果有,直接通過光標鏈接到位于PGA中的私有SQL區(privateSQLAREA),轉到步驟11。否則,執行步驟2。
2.檢查是否設置了初始化參數SESSION_CACHED_CURSORS。如果設置了,還可以通過光標指向位于PGA中的私有SQL區域,轉到步驟11。否則,轉到步驟3。
3.檢查保持光標和釋放光標的設置。如果RELEASE_CURSORno(缺省no)和HOLD_CURSORyes(缺省no),當ORACLE執行完SQL語句后,為私有SQL區分配的內存空間被保留,游標和私有SQL區之間的鏈接也被保留,預編譯器將不再使用它。同樣,可以通過這個指針直接在privateSQL區域獲取語句,并轉到步驟11。
以上三種情況,實際上沒有parse,語句直接從位于PGA的私有SQL區域獲取,直接執行。這是快速解析。
當這三個條件都不存在時,oracle執行第4步。
4.創建一個光標。
5.語法檢查:檢查語法書寫是否正確,是否符合SQL參考手冊中給出的SQL語法。
6.語義分析:查閱數據字典,檢查表和列是否正確,是否符合要求對象,以便在解析語句的過程中不會更改這些對象的定義,并驗證是否滿足訪問所涉及的架構對象所需的權限。
7.將語句轉換成ASCII等價的數字代碼,然后通過哈希算法得到哈希值。
8.檢查庫緩存中是否存在具有相同哈希值的語句。如果是,請轉到步驟11。否則,轉到步驟9。這是軟解析。
9.選擇執行計劃。從可用的執行計劃中選擇一個最佳執行計劃,包括與存儲的大綱或實體化視圖相關的決策。
10.生成語句的編譯代碼(p代碼)。
11.執行語句。
當一個會話執行一個語句時,該語句的解析結果將被保存在庫緩存中,并且在PGA的私有sql區域。游標總是通過一個鏈接直接鏈接到私有sql區域。如果在private中沒有找到這個副本,您需要解析SQL,然后匹配庫緩存中的哈希值。所以一般來說,您可以使用cursor而不進行任何解析,因為您直接從當前的私有sql區域獲得了與語句相關的信息,包括執行計劃。一旦需要在庫緩存中進行匹配,就必須進行解析。
Softpparse不是沒有解析,但是解析的量很小,只需要語法檢查、語義分析和hash語句解析。