成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

閑扯Oracle SQL語句解析步驟

數據庫 Oracle
這里介紹判斷一條Oracle SQL語句的語法是否符合SQL的規范,比如執行:SQL> selet * from emp;我們就可以看出由于Select關鍵字少了一個“c”,這條語句就無法通過語法檢驗的步驟了。

Oracle還是比較常用的,于是我研究了一下Oracle SQL語句,在這里拿出來和大家分享一下,希望對大家有用。我們都知道在Oracle SQL語句在執行之前都需要經過解析,這里面又分為軟解析和硬解析。那么這兩種解析有何不同之處呢?它們又分別是如何進行解析呢?Oracle內部解析的步驟又是如何進行的呢?下面我們就這些話題進行共同探討。

在Oracle中存在兩種類型的SQL語句,一類為DDL語句,他們是從來不會共享使用的,也就是每次執行都需要進行硬解析。還有一類就是DML語句,他們會根據情況選擇要么進行硬解析,要么進行軟解析。在Oracle 8i OCP教材的023中1-12有說明SQL語句的解析步驟,當一條SQL語句從客戶端進程傳遞到服務器端進程后,需要執行如下步驟:
◆在共享池中搜索 SQL語句的現有副本
◆驗證 SQL 語句的語法是否準確
◆執行數據字典查找來驗證表和列的定義
◆獲取對象的分析鎖以便在語句的分析過程中對象的定義不會改變
◆檢查用戶訪問引用方案對象的權限
◆確定語句的最佳執行計劃
◆將語句和執行計劃載入共享的 SQL 區

這個先入為主的概念一直占據著我的腦海,我認為硬解析就是上面幾個步驟。相對于硬解析,軟解析的步驟就是上面第一步找到現有SQL語句的副本后,只需要驗證用戶是否有權限執行就是了,這樣省略上面好幾個步驟,相對硬解析來說性能開銷就非常小了。即使是在論壇上和大家討論時,我也一直堅持這個看法。直到前一天看了Tom的《Effective Oracle By Design》中關于語句處理的章節后,我才知道這個自己一直堅持的觀點事實上是錯誤的。

事實上,在Oracle SQL語句的解析步驟如下:

1、 語法檢測。判斷一條Oracle SQL語句的語法是否符合SQL的規范,比如執行:SQL> selet * from emp;我們就可以看出由于Select關鍵字少了一個“c”,這條語句就無法通過語法檢驗的步驟了。

2、 語義檢查。語法正確的SQL語句在解析的第二個步驟就是判斷該SQL語句所訪問的表及列是否準確?用戶是否有權限訪問或更改相應的表或列?比如如下語句:

  1. SQL> select * from emp;  
  2. select * from emp  
  3. *  
  4. ERROR at line 1:  
  5. ORA-00942: table or view does not exist 

由于查詢用戶沒有可供訪問的emp對象,因此該Oracle SQL語句無法通過語義檢查。

【編輯推薦】

  1. Oracle SQL語句優化的相關技術分析
  2. Oracle SQL 內置函數大全
  3. ORACLE SQL性能優化 (上)
  4. ORACLE SQL性能優化 (下)
  5. Oracle SQL到DB2 SQL移植解決方案
責任編輯:佚名 來源: 博客園
相關推薦

2009-11-16 11:31:54

Oracle數據導入

2010-04-20 15:22:34

Oracle SQL

2011-08-18 14:25:26

OracleEXPLAIN PLA

2009-11-16 17:55:58

Oracle SQL語

2009-11-16 13:47:35

Oracle SQL語

2017-05-16 11:20:51

SQL語句解析

2010-04-06 15:23:42

Oracle sql

2010-04-13 14:36:17

Oracle性能檢測

2009-11-06 17:21:36

驗證Oracle SQ

2010-04-13 15:04:16

Oracle優化

2009-11-05 18:07:33

Oracle導出sql

2010-04-15 16:36:13

Oracle SQL

2010-04-06 14:26:41

Oracle復制表

2010-04-29 12:05:21

Oracle使用SQL

2009-01-14 09:28:12

OracleSQL10g

2010-04-29 14:06:40

Oracle SQL

2010-04-12 14:22:13

Oracle性能sql語句

2017-08-31 14:09:26

數據庫MySQLSQL優化

2019-11-06 09:30:35

SQL查詢語句數據庫

2009-03-04 09:06:56

優化sqlOracle
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区三区视频在线 | 不卡视频一区 | 自拍偷拍3p | 亚洲国产一区二区视频 | 岛国av免费看 | 久久999| 正在播放一区二区 | 男人天堂999 | 精精国产xxxx视频在线播放7 | 欧美成人精品一区二区男人看 | 一区二区中文字幕 | 国产成人精品视频 | 欧美xxxx在线 | 久久精品99久久 | 久久久久久久久精 | 18gay男同69亚洲网站 | 99精品一区二区 | 亚洲视频www | 久久久免费少妇高潮毛片 | 亚洲激情在线观看 | 亚洲va欧美va天堂v国产综合 | 成人在线一级片 | 欧美最猛性xxxxx亚洲精品 | 久久综合狠狠综合久久 | 四虎影院一区二区 | 亚洲一区二区三区四区在线观看 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 国产精品久久二区 | 欧美午夜精品久久久久免费视 | 日韩在线精品视频 | 久久亚洲国产精品 | 国产探花在线精品一区二区 | 精品区| 人人看人人干 | 一区二区三区四区在线视频 | 国产在线a| 一级黄色播放 | 97人人草 | 久久久av中文字幕 | 久久鲁视频 | 久久中文字幕视频 |