最優化的ms sql server分頁sql語句

2021-04-06 18:19:22 字數 957 閱讀 5990

特點:一次查詢,資料庫只返回一頁的資料。而不是取出所有的資料。

說明:pagesize: 每頁顯示記錄數

cureentpage:當前頁數

select * from (  select top pagesize * from ( select top pagesize*cureentpage  * from user_table  order by id asc ) as asystable  order by id desc ) as bsystable  order by id asc

例子說明:

假如資料庫表如下:

user_table:

id:主鍵,自增

username:字元

password:字元

假設有80條記錄,每頁顯示10條記錄,id 從1到80

現在按照id公升序排列取出第三頁的資料應該為:所取得記錄的id 應該為 21到30。

這時該語句應該為:

select * from (  select top 10 * from ( select top 30  * from user_table  order by id asc ) as asystable  order by id desc ) as bsystable  order by id asc

原理如下:

先按照id從小到大公升序取出30條記錄(3*10),也就是:id 在 1-30 之間的記錄 (select top 30  * from user_table  order by id asc)

然後按照id降序排列這30條記錄,得到記錄為id 在:從30到 1 

然後在這些30條記錄中取出前10條記錄:取得的記錄為:id 在30-21之間。這就是我們需要的資料,但這時是按照降序排列的,不符合要求。

最後在重新排序得到最終我們需要的資料。id在21-30之間。

希望對大家有所幫助。

如有問題,希望和大家一塊交流。

最優化的ms sql server分頁sql語句

特點 一次查詢,資料庫只返回一頁的資料。而不是取出所有的資料。說明 pagesize 每頁顯示記錄數 cureentpage 當前頁數 select from select top pagesize from select top pagesize cureentpage from user tab...

MS SQL Server查詢優化方法

查詢 速度慢的原因很多,常見如下幾種 1 沒有索引或者沒有用到索引 這是查詢慢最常見的問題,是程式設計的缺陷 2 i o吞吐量小,形成了瓶頸效應。3 沒有建立計算列導致查詢不優化。4 記憶體不足 5 網路速度慢 6 查詢出的資料量過大 可以採用多次查詢,其他的方法降低資料量 7 鎖或者死鎖 這也是查...

最優化理論

最優化 optimization 應用數學的重要研究領域.它是研究在給定約束之下如何尋求某些因素 的量 以使某一 或某些 指標達到最優的一些學科的總稱.由於運籌學中出現的問題大多即是最優化所研究的問題,因此運籌學的許多分支,如數學規劃 組合最優化 排隊論,以及決策論等也是最優化的組成部分.此外,最優...