也說sql server分頁查詢

來源:互聯網
上載者:User
也說sql server分頁查詢

現在一般常用的有以下2種方法:

1. select top @pagesize * from table1 where id not in  (select top @pagesize*(@page-1) id  from table1 order by id) order by id

2. select *  from (select top @pagesize * from (select top @pagesize*@page * from table1 order by id) a order by id desc) b order by id

哪種方法更好?試了一下.

做兩個table,各有1萬條記錄,一個table的id有index,一個沒有

圖1,沒有index的table,取第1000-1100條記錄

圖2,沒有index的table,取第9000-9100條記錄

圖3,有index,取第1000-1100條記錄

圖4,有index,取第9000-9100條記錄

可以發現sort的欄位建立了index的條件下,第1個方法快很多,特別是查到後面頁數的時候.原因就在於第2個方法中,第一次做了select 後,再做自查詢時,index已經沒有了.sort就會非常影響效能了.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.