<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)計(jì)

    積分與排名

    friends

    link

    最新評論

    SQL各種寫法的效率問題

    1)一次插入多條數(shù)據(jù)時(shí):
    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)賦值時(shí):
    SELECT @a=N'aa'
    SET @a=N'aa'
    _________________________________
    上面兩種方法,哪種方法效率高?

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

    (4)條件判斷時(shí)
    ?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)從字符串中取子字符串時(shí)
    substring('abcdefg',1,3)
    left('abcderg',3)_
    ________________________________
    上面兩種方法,哪種方法效率高?

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

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



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

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

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

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

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

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

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

    主站蜘蛛池模板: 97国免费在线视频| 亚洲国产综合无码一区| 亚洲欧洲国产经精品香蕉网| 成人免费ā片在线观看| 亚洲国产成人久久综合野外| 粉色视频在线观看www免费| 国产午夜鲁丝片AV无码免费| 国内成人精品亚洲日本语音| 国产又大又粗又硬又长免费| 男女男精品网站免费观看 | 精品福利一区二区三区免费视频| 亚洲伊人久久精品影院| 青青操视频在线免费观看| 亚洲国产精品无码专区在线观看 | 免费一级毛片在级播放| 免费一级毛suv好看的国产网站| 五月天婷亚洲天综合网精品偷| 色吊丝性永久免费看码| 亚洲精品乱码久久久久久| 97视频免费观看2区| 亚洲制服丝袜第一页| 国产无遮挡裸体免费视频| 一区二区3区免费视频| 亚洲Av无码精品色午夜| 97性无码区免费| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲毛片av日韩av无码| 久久成人无码国产免费播放| 亚洲va在线va天堂va手机| 日韩免费a级在线观看| jizz在线免费观看| 亚洲精品亚洲人成在线麻豆| 妞干网手机免费视频| 国产精品hd免费观看| 亚洲男人的天堂在线| 四虎影视永久免费观看网址| 国色精品va在线观看免费视频 | 91亚洲精品视频| 凹凸精品视频分类国产品免费| 国产一二三四区乱码免费| 亚洲视频一区二区三区四区|