<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    黑豆熊——BlogJava

    面對挑戰(zhàn),我告訴自己:面對是勇氣,積極面對是態(tài)度,堅持積極面對是毅力!

    常用鏈接

    統(tǒng)計

    積分與排名

    最新評論

    sql語句的執(zhí)行順序--簡介

    今天上午在開發(fā)的過程中,突然遇到一個問題,需要了解SQL語句的執(zhí)行順序才能繼續(xù),上網(wǎng)上查了一下相關(guān)的資料,現(xiàn)整理如下:
    一、sql語句的執(zhí)行步驟:
     1)語法分析,分析語句的語法是否符合規(guī)范,衡量語句中各表達(dá)式的意義。
    2) 語義分析,檢查語句中涉及的所有數(shù)據(jù)庫對象是否存在,且用戶有相應(yīng)的權(quán)限。
    3)視圖轉(zhuǎn)換,將涉及視圖的查詢語句轉(zhuǎn)換為相應(yīng)的對基表查詢語句。
    4)表達(dá)式轉(zhuǎn)換, 將復(fù)雜的 SQL 表達(dá)式轉(zhuǎn)換為較簡單的等效連接表達(dá)式。
     5)選擇優(yōu)化器,不同的優(yōu)化器一般產(chǎn)生不同的“執(zhí)行計劃”
    6)選擇連接方式, ORACLE 有三種連接方式,對多表連接 ORACLE 可選擇適當(dāng)?shù)倪B接方式。
    7)選擇連接順序, 對多表連接 ORACLE 選擇哪一對表先連接,選擇這兩表中哪個表做為源數(shù)據(jù)表。
    8)選擇數(shù)據(jù)的搜索路徑,根據(jù)以上條件選擇合適的數(shù)據(jù)搜索路徑,如是選用全表搜索還是利用索引或是其他的方式。
    9)運行“執(zhí)行計劃”
    二、oracle 共享原理:
            ORACLE將執(zhí)行過的SQL語句存放在內(nèi)存的共享池(shared buffer pool)中,可以被所有的數(shù)據(jù)庫用戶共享 當(dāng)你執(zhí)行一個SQL語句(有時被稱為一個游標(biāo))時,如果它和之前的執(zhí)行過的語句完全相同, ORACLE就能很快獲得已經(jīng)被解析的語句以及最好的 執(zhí)行路徑. 這個功能大大地提高了SQL的執(zhí)行性能并節(jié)省了內(nèi)存的使用
    三、oracle 語句提高查詢效率的方法:1: where column in(select * from ... where ...); 2:... where exists (select 'X' from ...where ...); 第二種格式要遠(yuǎn)比第一種格式的效率高。在Oracle中可以幾乎將所有的IN操作符子查詢改寫為使用EXISTS的子查詢 使用EXIST,Oracle系統(tǒng)會首先檢查主查詢,然后運行子查詢直到它找到第一個匹配項,這就節(jié)省了時間 Oracle系統(tǒng)在執(zhí)行IN子查詢時,首先執(zhí)行子查詢,并將獲得的結(jié)果列表存放在在一個加了索引的臨時表中 避免使用having字句 避免使用HAVING子句, HAVING 只會在檢索出所有記錄之后才對結(jié)果集進(jìn)行過濾. 這個處理需要排序,總計等操作. 如果能通過WHERE子句限制記錄的數(shù)目,那就能減少這方面的開銷

    SQL Select語句完整的執(zhí)行順序: 

    1、from子句組裝來自不同數(shù)據(jù)源的數(shù)據(jù);
     2、where子句基于指定的條件對記錄行進(jìn)行篩選;
    3、group by子句將數(shù)據(jù)劃分為多個分組;
    4、使用聚集函數(shù)進(jìn)行計算;
    5、使用having子句篩選分組;
    6、計算所有的表達(dá)式;
    7、使用order by對結(jié)果集進(jìn)行排序。

    posted on 2008-11-28 11:17 黑豆熊 閱讀(9663) 評論(6)  編輯  收藏

    評論

    # re: sql語句的執(zhí)行順序--簡介 2008-11-28 13:19 charlie's logic

    thx  回復(fù)  更多評論   

    # re: sql語句的執(zhí)行順序--簡介 2008-11-28 21:37 lyoe

    很不錯~后面的知道,前面的那個“執(zhí)行步驟”以前還真不知道  回復(fù)  更多評論   

    # re: sql語句的執(zhí)行順序--簡介 2009-03-06 09:11 thirdline

    很好!以前了解一點SQL執(zhí)行順序,現(xiàn)在全忘了.
    今天看到你的文章,真的就回憶起來了,呵呵,謝謝!
    不知道博主是否同意轉(zhuǎn)載?  回復(fù)  更多評論   

    # re: sql語句的執(zhí)行順序--簡介 2009-06-04 09:22 thebye85

    select 是在什么時候執(zhí)行的?  回復(fù)  更多評論   

    # re: sql語句的執(zhí)行順序--簡介[未登錄] 2009-10-04 08:30 test

    @thebye85
    最后執(zhí)行  回復(fù)  更多評論   

    # re: sql語句的執(zhí)行順序--簡介 2011-09-07 18:32 GavinMiao

    頂,不錯!  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产香蕉人人爽成AV片久久 | 亚洲综合av永久无码精品一区二区| 亚洲日韩精品无码专区| 国产91免费视频| 亚洲精品午夜在线观看| 亚洲第一网站免费视频| 亚洲一区二区三区四区视频| 2021国产精品成人免费视频| 亚洲一级毛片免费观看| 成人毛片免费在线观看| 最新亚洲人成网站在线观看| 四虎免费影院4hu永久免费| 黄色a三级免费看| 亚洲中文久久精品无码ww16| 中国毛片免费观看| 亚洲av无码成h人动漫无遮挡| 免费A级毛片无码A∨中文字幕下载| 亚洲国语精品自产拍在线观看| 91精品免费久久久久久久久| 亚洲一级毛片免费看| 国产网站免费观看| A毛片毛片看免费| 亚洲网站在线免费观看| 毛片免费在线观看网址| 亚洲av成人一区二区三区观看在线| 国产乱弄免费视频| 国产真人无码作爱视频免费| 亚洲视频一区网站| 国产又粗又猛又爽又黄的免费视频| 一级**爱片免费视频| 亚洲酒色1314狠狠做| 免费高清资源黄网站在线观看 | 黄色免费网址大全| 亚洲精品tv久久久久久久久| 四虎免费影院ww4164h| 羞羞视频免费网站含羞草| 亚洲AV综合色区无码一区爱AV| 歪歪漫画在线观看官网免费阅读| 高h视频在线免费观看| 亚洲综合免费视频| 啊v在线免费观看|