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

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

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

    love fish大鵬一曰同風(fēng)起,扶搖直上九萬里

    常用鏈接

    統(tǒng)計

    積分與排名

    friends

    link

    最新評論

    SQL各種寫法的效率問題

    1)一次插入多條數(shù)據(jù)時:
    CREATE TABLE tb(ID int, 名稱 NVARCHAR(30), 備注 NVARCHAR(1000))
    INSERT tb?? SELECT 1,'DDD',1
    UNION? ALL??????? SELECT 1,'5100','D'
    UNION? ALL??????? SELECT 1,'5200','E'

    也可以這樣:
    CREATE TABLE tb1(ID int, 名稱 NVARCHAR(30), 備注 NVARCHAR(1000))
    INSERT TB1 (ID,名稱,備注)VALUES(1,'DDD',1)
    INSERT TB1 (ID,名稱,備注)VALUES(1,'5100','D')
    INSERT TB1 (ID,名稱,備注)VALUES(1,'5200','E')
    _________________________________
    上面兩種方法,哪種方法效率高?

    (2)賦值時:
    SELECT @a=N'aa'
    SET @a=N'aa'
    _________________________________
    上面兩種方法,哪種方法效率高?

    (3)取前幾條數(shù)據(jù)時
    set ROWCOUNT 2 select * from tb order by fd
    select Top 2 * from tb order by fd
    _________________________________
    上面兩種方法,哪種方法效率高?

    (4)條件判斷時
    ?where 0<(select count(*) from tb where ……)
    ?where exists(select * from tb where ……)
    _________________________________
    上面兩種方法,哪種方法效率高?

    (5)NULLIF的使用----->同理它的反函數(shù)ISNULL的使用
    update tb set fd=case when fd=1 then null else fd end
    update tb set fd=nullif(fd,1)
    _________________________________
    上面兩種方法,哪種方法效率高?

    (6)從字符串中取子字符串時
    substring('abcdefg',1,3)
    left('abcderg',3)_
    ________________________________
    上面兩種方法,哪種方法效率高?

    (7)EXCEPT和Not in的區(qū)別?

    (8)INTERSECT和UNION的區(qū)別?



    (1)一次插入多條數(shù)據(jù)時:

    第1種好一些, 但也得有個, 因為第1種的union all是做為一個語句整體, 查詢優(yōu)化器會嘗試做優(yōu)化, 同時, 也要先算出這個結(jié)果再插入的.

    2. 如果是單個賦值, 沒有什么好比較的話.
    不過, 如果是為多個變量賦值, 我測試過, SELECT 一次性賦值, 比用SET 逐個賦值效率好.
    3. SET ROWCOUNT和TOP 是一樣的, 包括執(zhí)行的計劃等都是一樣的

    4. 這個一般是exists快, 當(dāng)然, 具體還要看你后面的子查詢的條件, 是否會引用外層查詢中的對象的列.
    ?? exists檢查到有值就返回, 而且不返回結(jié)果集, count需要統(tǒng)計出所有滿足條件的, 再返回一個結(jié)果集, 所以一般情況下exists快.

    5. 應(yīng)該是一樣的

    6. 基本上是一樣的
    7. except會去重復(fù), not in 不會(除非你在select中顯式指定)
    ?? except用于比較的列是所有列, 除非寫子查詢限制列, not in 沒有這種情況
    8. intersect是兩個查詢都有的非重復(fù)值(交集), union是兩個查詢結(jié)果的所有不重復(fù)值(并集)

    posted on 2007-03-19 14:18 liaojiyong 閱讀(878) 評論(0)  編輯  收藏 所屬分類: MSSQL

    主站蜘蛛池模板: 亚洲高清无码专区视频| 91av免费在线视频| fc2成年免费共享视频网站| 一级毛片在线免费看| 成人a视频片在线观看免费| 77777亚洲午夜久久多人| 亚洲高清视频在线| 国产永久免费高清在线| 免费看片免费播放| 亚洲国产美国国产综合一区二区| 亚洲中文无码av永久| 中文字幕免费在线视频| 日韩免费a级在线观看| 亚洲人成电影在线天堂| 欧洲精品码一区二区三区免费看| www视频在线观看免费| 亚洲综合伊人久久大杳蕉| 亚洲a∨国产av综合av下载| 久久w5ww成w人免费| 国产午夜亚洲不卡| 亚洲爆乳成av人在线视菜奈实| 久久久久成人片免费观看蜜芽| 亚洲高清视频一视频二视频三| 亚洲制服丝袜第一页| 日本免费一区二区久久人人澡 | 777爽死你无码免费看一二区| 免费国产a国产片高清| 亚洲一区中文字幕在线观看| 中文无码成人免费视频在线观看| 免费在线看片网站| 亚洲成a∨人片在无码2023| 日韩国产免费一区二区三区| 亚洲成人午夜在线| 成人网站免费大全日韩国产| 国产99视频精品免费视频7| 亚洲人成自拍网站在线观看| 久久久久久久免费视频| 亚洲一区二区三区在线观看蜜桃| 免费无遮挡无码永久视频| 亚洲va久久久噜噜噜久久天堂| 国产无限免费观看黄网站|