SQLServerのページングクエリでは、データベースは、SQLServerのショートボードではありません何も、いくつかの方法を考え出す、テーブルアーティクル、フィールドID、YEAR ...(他は省略)、データ53 210(実際の顧客データではなく、量を想定しています)、ページングクエリあたり30、問合せセクションデータ1500(すなわち、45001から45030個)、フィールドIDクラスタ化インデックス、YEARないインデックス、SQLSERVERバージョン:2008R2
最初のシナリオ、最も単純で一般的な方法:
SELECT TOP 30 * FROM ARTICLE WHERE ID 、NOT 、IN(SELECT TOP 45000 IDをFROM記事のORDER BY YEAR DESC、ID DESC)ORDER BY YEAR DESC、ID DESCを
二番目のオプション:
コードは以下の通りであります:
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)のORDER BY S。YEAR DESC、s.ID DESC
100を照会するために必要な平均時間:138S
第三の選択肢:
コードは以下の通りであります:
SELECT * 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の ID で ( SELECT トップ30 IDをFROM ( SELECT トップ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、W1をw2.n。* 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記事のORDER BY YEAR DESC、ID DESC)ORDER BY YEAR DESC、ID DESCを
100回必要な平均クエリ時間:80年代
二番目のオプション:
コードは以下の通りであります:
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)のORDER BY秒。YEAR DESC、s.ID DESC
100回の平均クエリの所要時間:30S
第三の選択肢:
コードは以下の通りです
SELECT * FROM ARTICLE W1を、 ( SELECT TOP 30 ID 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の ID で ( SELECT トップ30 IDをFROM ( SELECT トップ1030 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回の平均クエリの所要時間:13S
第五プログラム:
コードは以下の通りであります:
SELECT、W1をw2.n。* FROM(記事W1、 SELECT TOP 1030(ROW_NUMBER)をOVER(ORDER BY YEAR DESC、ID DESC ID)N FROM ARTICLE)W2 WHERE w1.ID = w2.ID AND w2.n > 1000年 ORDER BY w2.n ASC
100回の平均クエリの所要時間:14S
ページ上のクエリのフロントページ、3> 4> 5> 2> 1の効率は、その後、ユーザーの習慣に従って5> 4> 3> 1> 2は、一般的なユーザーは、最初の数の検索を見てこのように後にするときページなので、シナリオ5を考慮すると、最良の選択である場合には、しかし、SQL2000に注意を払うことができます345のプログラムを選択するには時間的制約にROW_NUMBER()関数を、サポートされていないとの条件がないより深く、より広範なテスト、興味