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

Oracleでのページネーションのベストプラクティスは?

    すでにアナリティクスを使用している場合(ROW_NUMBER() OVER ... )次に、同じパーティションに別の分析関数を追加すると、クエリにかかるコストはごくわずかになります。

    一方、ページネーションを行う方法は他にもたくさんあり、そのうちの1つはrownumを使用します。 :

    SELECT * 
      FROM (SELECT A.*, rownum rn
              FROM (SELECT *
                      FROM your_table
                     ORDER BY col) A
             WHERE rownum <= :Y)
     WHERE rn >= :X
    

    注文列に適切なインデックスがある場合、この方法は優れています。この場合、2つのクエリ(1つは行の総数、もう1つは結果)を使用する方が効率的です。

    どちらの方法も適切ですが、一般に、行数とページネーションセットの両方が必要な場合は、行を1回だけクエリするため、分析を使用する方が効率的です。



    1. Entity-Framework Code-Firstの接続文字列をプログラムで設定するにはどうすればよいですか?

    2. 1つのクエリで複数の行を挿入するMySQL

    3. SQLServerでStuffと'ForXml Path'はどのように機能しますか?

    4. Oracleマネージドドライバーはasync/awaitを適切に使用できますか?