小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Sql2000分頁(yè)效率

 KILLKISS 2012-09-19


方法一:

 

復(fù)制代碼
SELECT TOP 頁(yè)大小 *
FROM table1
WHERE id NOT IN
          (
          
SELECT TOP 頁(yè)大小*(頁(yè)數(shù)-1) id FROM table1 ORDER BY id
          )
ORDER BY id
復(fù)制代碼

 

 

方法二:

 

復(fù)制代碼
SELECT TOP 頁(yè)大小 *
FROM table1
WHERE id >
          (
          
SELECT ISNULL(MAX(id),0
          
FROM 
                (
                
SELECT TOP 頁(yè)大小*(頁(yè)數(shù)-1) id FROM table1 ORDER BY id
                ) A
          )
ORDER BY id
復(fù)制代碼

 

網(wǎng)上的結(jié)論:

通過(guò)SQL 查詢(xún)分析器,顯示比較:我的結(jié)論是:
分頁(yè)方案一:(利用Not In和SELECT TOP分頁(yè))   效率次之,需要拼接SQL語(yǔ)句
分頁(yè)方案二:(利用ID大于多少和SELECT TOP分頁(yè))效率最高,需要拼接SQL語(yǔ)句

我的測(cè)試過(guò)程,大表?xiàng)l數(shù): 1521715 條。 ID不設(shè)主鍵,不從1開(kāi)始。

方案一的執(zhí)行計(jì)劃:

Sql分頁(yè)方案一

執(zhí)行時(shí)間0秒。

方案二的執(zhí)行計(jì)劃:(出現(xiàn) 緩沖池中的可用內(nèi)存不足。的錯(cuò)誤,重啟Sqlserver就好。)

Sql分頁(yè)方案二

執(zhí)行時(shí)間6秒。

分析如下:

方案一兩個(gè)表掃描行數(shù)只有100 和 150 。

方案二最后兩個(gè)節(jié)點(diǎn)是全表掃描。 這是最關(guān)鍵的。

 

ID 加主鍵情況:

方案一情況照舊。

方案二的執(zhí)行計(jì)劃:

執(zhí)行時(shí)間0秒。

但是,第一行最后一個(gè)節(jié)點(diǎn)都是掃描了100條記錄。 但是,方案一占用了17%,方案二占用了62%,在這里,占用量越大,整體時(shí)間越短。所以 方案二是最優(yōu)的,方案一浪費(fèi)時(shí)間在兩個(gè)方面,一是 Not IN 需要 哈希匹配,二是第二個(gè)聚集索引掃描掃描了150條記錄,而方案二第二個(gè)聚集索引掃描只掃描了50條。

 

附Sql2005的方法三:

SELECT TOP 頁(yè)大小 * 
FROM 
        (
        
SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
        ) A
WHERE RowNumber > 頁(yè)大小*(頁(yè)數(shù)-1)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多