真正高效的SQLSERVER分頁查詢(多種方案)建站知識
導讀:1建站知識Sqlserver數據庫分頁查詢一直是Sqlserver的短板,分頁查詢每頁30條,查詢第1500頁(即第45001-45030條數據)進行測試,分析出最seo網站關鍵詞優化網站建設教程。
Sqlserver數據庫分頁查詢一直是Sqlserver的短板,閑來無事,想出幾種方法,假設有表ARTICLE,字段ID、YEAR...(其他省略),數據53210條(客戶真實數據,量不大),分頁查詢每頁30條,查詢第1500頁(即第45001-45030條數據),字段ID聚集索引,YEAR無索引,Sqlserver版本:2008R2 第一種方案、最簡單、普通的方法:
復制代碼 代碼如下:
SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TOP 45000 ID FROM ARTICLE ORDER BY YEAR DESC, ID DESC) ORDER BY YEAR DESC,ID DESC
平均查詢100次所需時間:45s 第二種方案:復制代碼 代碼如下:
SELECT * FROM ( SELECT TOP 30 * FROM (SELECT TOP 45030 * FROM ARTICLE ORDER BY YEAR DESC, ID DESC) f ORDER BY f.YEAR ASC, f.ID DESC) s ORDER BY s.YEAR DESC,s.ID DESC
平均查詢100次所需時間:138S 第三種方案:復制代碼 代碼如下:
SEL網站seo優化培訓ECT * FROM ARTICLE w1, ( SELECT TOP 30 ID FROM ( SELECT TOP 50030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC ) w ORDER BY w.YEAR ASC, w.ID ASC ) w2 WHERE w1.ID = w2.ID ORDER BY w1.YEAR DESC, w1.ID DESC
平均查詢100次所需時間:21S 第四種方案:復制代碼 代碼如下:
SELECT * FROM ARTICLE w1 WHERE ID in ( SELECT top 30 ID FROM ( SELECT top 45030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC ) w ORDER BY w.YEAR ASC, w.ID ASC ) ORDER BY w1.YEAR DESC, w1.ID DESC
平均查詢100次所需時間:20S 第五種方案:復制代碼 代碼如下:
SELECT w2.n, w1.* FROM ARTICLE w1, ( SELECT TOP 50030 row_number() OVER (ORDER BY YEAR DESC, ID DESC) n, ID FROM ARTICLE ) w2 WHERE w1.ID = w2.ID AND w2.n > 50000 ORDER BY w2.n ASC
平均查詢100次所需時間:15S 查詢第1000-1030條記錄 第一種方案:復制代碼 代碼如下:
SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TOP 1000 ID FROM ARTICLE ORDER BY YEAR DESC, ID DESC) ORDER BY YEAR DESC,ID DESC
平均查詢100次所需時間:80s 第二種方案:復制代碼 代碼如下:
SELECT * FROM ( SELECT TOP 30 * FROM (SELECT TOP 1030 * FROM ARTICLE ORDER BY YEAR DESC, ID DESC) f ORDER BY f.YEAR ASC, f.ID DESC ) s ORDER BY s.YEAR DESC,s.ID DESC
平均查詢100次所需時間:30S 第三種方案:復制代碼 代碼如下:
SELECT * FROM ARTICLE w1, ( SELECT TOP 30 I網站優化seo培訓D FROM ( SELECT TOP 1030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC ) w ORDER BY w.YEAR ASC, w.ID ASC ) w2 WHERE w1.ID = w2.ID ORDER BY w1.YEAR DESC, w1.ID DESC
平均查詢100次所需時間:12S 第四種方案:復制代碼 代碼如下:
SELECT * FROM ARTICLE w1 WHERE ID in ( SELECT top 30 ID FROM ( SELECT top 1030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC ) w ORDER BY w.YEseo網站優化軟件AR ASC, w.ID ASC ) ORDER BY w1.YEAR DESC, w1.ID DESC
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-24 ,文章真正高效的SQLSERVER分頁查詢(多種方案)建站知識主要講述高效,分頁,SQL網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_6858.html