sql >> データベース >  >> RDS >> Sqlserver

SQL Server でページネーションを実行する最良の方法はどれですか?

    ALTER PROCEDURE [dbo].[SP_tblTest_SelectSpecificRecordsWithCTE] @FromRow int =1000000, @PgSize int =10ASBEGIN;WITH RecordsRN AS (ID、colValue、ROW_NUMBER() over(order by colvalue) as Num from tblTest ) SELECT ID 値、colValue テキスト FROM RecordsRN WHERE Num between @FromRow AND (@[email protected] 
     )END  

    それは私がページングに使用しているクエリです。それを使用すると、4 ~ 5 秒で目的の 10 レコードを取得できます。私は 3 秒で 10 レコードを取得しています。DB の合計レコード数は 1,000 万です。トップ 10 を使用しないでください。毎回同じ 10 レコードしか取得されません。私の場合、セッションでページ サイズと開始行番号 (@FromRow) を維持しています。これら 2 つの値を以下のストアド プロシージャに渡し、結果を取得します。SQL 2012 を使用している場合は、OFFSET を使用することをお勧めします。そして次の10行をフェッチします。 OFFSET キーワードについて Google で検索すると、目的の結果が一番上に表示されます。

    ありがとう



    1. SQLステートメントに左括弧がないことに関する紛らわしいエラー

    2. 解析日後のOracleSelectステートメントからの戻り番号

    3. JPA/Hibernateでの多対多の関係のモデリング

    4. MySQLの末尾のスペースとの比較