<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

    主站蜘蛛池模板: 亚洲国产精品成人综合色在线婷婷 | 国产视频精品免费| 亚洲视频在线观看免费视频| 特级av毛片免费观看| 亚洲人av高清无码| 亚洲最大中文字幕无码网站| 亚洲黄网在线观看| 亚洲日本一区二区| 亚洲国产综合91精品麻豆| 亚洲av永久无码精品国产精品| 久久99亚洲综合精品首页| 亚洲电影日韩精品 | 亚洲视频在线观看2018| 亚洲av永久无码嘿嘿嘿| 亚洲AV成人一区二区三区在线看| 亚洲乱码在线视频| 在线a亚洲老鸭窝天堂av高清| 亚洲AV日韩综合一区尤物| 亚洲中文字幕乱码熟女在线| 亚洲日韩看片无码电影| 国产精品亚洲а∨无码播放麻豆 | 99免费在线视频| 无码专区AAAAAA免费视频| 久久综合给合久久国产免费| 最近免费字幕中文大全视频| 成人女人A级毛片免费软件| 日韩高清在线免费观看| 亚洲日韩VA无码中文字幕| 亚洲AV无码码潮喷在线观看| 亚洲成A∨人片在线观看无码| 久久精品国产亚洲AV蜜臀色欲| 亚洲日韩国产精品乱-久| 色多多免费视频观看区一区| 国产午夜精品理论片免费观看| 桃子视频在线观看高清免费视频| 免费精品人在线二线三线区别| 免费在线观看你懂的| 亚洲国产成人久久精品动漫| 亚洲最大福利视频| 两性色午夜视频免费播放| 国产免费丝袜调教视频|