SQL Server OFFSET ページングを超えて: Keyset ページングの効率上の利点
ページング テクノロジは、データの特定の部分を効率的に取得できるため、大規模なデータ セットを扱う場合に非常に重要です。 SQL Server にはページング用の OFFSET 句が用意されていますが、パフォーマンスのボトルネックがあります。この記事では、OFFSET よりも優れたパフォーマンスを発揮する代替手段であるキーセット ページングについて説明します。
キーセット ページング: より優れたページング メカニズム
キーセット ページングは、OFFSET で使用される行番号ベースの行セット ページングよりも効率的なメカニズムを採用しています。以前のすべての行を読み取る代わりに、サーバーがインデックス内の正しい場所に直接アクセスできるようになり、冗長な読み取りが最小限に抑えられます。
キーセット ページングを正常に実装するには、主キー (およびその他の関連する列) に一意のインデックスを確立する必要があります。これにより、ページング メカニズムが行番号ではなく主キーに基づいてデータをナビゲートできるようになります。
キーセット ページングの利点
キーセット ページングには、パフォーマンスの大幅な向上に加えて、次のような利点もあります。
キーセット ページングの例
「Id」列にインデックスを持つ「TableName」というテーブルがあるとします。ページングの開始クエリは次のとおりです:
<code class="language-sql">SELECT TOP (@numRows) * FROM TableName ORDER BY Id DESC;</code>
後続のリクエストでは次のページを取得できます:
<code class="language-sql">SELECT TOP (@numRows) * FROM TableName WHERE Id < (SELECT MAX(Id) FROM (SELECT TOP (@numRows) Id FROM TableName ORDER BY Id DESC) AS LastPage) ORDER BY Id DESC;</code>
キーセット ページングに関する注意事項
結論
大規模なデータ セットのページングの場合、キーセット ページングが SQL Server OFFSET に代わる優れた方法であることが証明されています。その効率性、主キーへの直接アクセス、行の欠落を回避する機能により、ページング シナリオにおける最適なデータ取得オプションとして理想的です。
以上がキーセット ページネーションは、効率的なデータ ページネーションを実現する SQL Server の OFFSET のより良い代替手段ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。