0

SQL Server 2012 の新しいページング stynax に関する投稿を見つけました。

SELECT p.ProductName
FROM Products p
ORDER BY p.ProductID

OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY

それはすごかった。しかし、実行計画を見ると、コストは 100% です。SELECT ステートメントがすべての行をフェッチしてからペインを実行するということですか? どちらがパフォーマンスの問題を引き起こしますか?

私は SQL Server を初めて使用しますが、これについて誰か教えてもらえますか? ありがとう。

実行計画のスクリーンショット

4

1 に答える 1

4

コストなしとは、すべてのステートメントと比較した特定のステートメントのコストを意味します。ステートメントが 1 つしかないため、実行時間全体の 100% を占めています。ステートメントが 2 つあれば、コストは分割されます。

また、混乱を避けるために、クエリを次のように書くことをお勧めします。これにより、OFFSET が実際には SELECT クエリの一部であることが明確になります。

SELECT p.ProductName
FROM Products p
ORDER BY p.ProductID
   OFFSET 10 ROWS
   FETCH NEXT 10 ROWS ONLY

役に立ちますか?

于 2012-07-09T14:37:39.187 に答える