0

2 つの選択クエリがあります。1 つ目は、グリッド ページング (1 ページあたり 25 行) の選択を実行します ( using TOP @pagesize*@pagenum EXCEPT TOP @pagesize*(@pagenum-1) construction)。2 番目のクエリの合計行数。

では、WITH AS構築すると、2 つの別々のクエリよりもパフォーマンスが向上しますか?もしそうなら、それはなぜですか? クエリには、複数の列、INNER JOIN、および WHERE 条件が含まれていることに注意してください。

4

2 に答える 2

1
  1. WITH 部分自体はパフォーマンスに役立ちません。これにより、クエリが理解しやすくなります。
  2. 私の理解が正しければ、カウントはすべての行です。クライアントにすべての行を取得する場合、2 番目の呼び出しを節約できますが、ほとんどの場合、コストが高くなります。
  3. 最後の X/Y 行のみを取得するために top X を使用するのはお勧めできません。自動番号を追加して、自動番号が目的の範囲内にある行を選択する必要があります。

    SELECT ROW_NUMBER() OVER (ORDER BY [Something] DESC) FROM ... WHERE [RowNumber] BETWEEN 10 AND 20

于 2013-07-18T14:53:33.353 に答える