効率的な SQL Server ページング メカニズム
膨大なレコード リストを扱う場合、パフォーマンス上の理由からデータ取得を最適化することが不可欠です。システムの過負荷を避けるための実際的なアプローチは、ユーザーがデータの特定のサブセットを選択できるようにページングを実装することです。
行番号アプローチ
それぞれに行番号を追加します。記録し、その数値に基づいてフィルタリングすることが実行可能な解決策です。ただし、特にテーブルが大きい場合、パフォーマンスのオーバーヘッドが発生する可能性があります。
最適化ストアド プロシージャ
次の T-SQL ストアド プロシージャは、非常に効率的なページング メカニズムを提供します。
CREATE PROCEDURE dbo.PagingTest ( @PageNumber int, @PageSize int ) AS DECLARE @FirstId int, @FirstRow int SET @FirstRow = ( (@PageNumber - 1) * @PageSize ) + 1 SET ROWCOUNT @FirstRow -- Add check here to ensure that @FirstRow is not -- greater than the number of rows in the table. SELECT @FirstId = [Id] FROM dbo.TestTable ORDER BY [Id] SET ROWCOUNT @PageSize SELECT * FROM dbo.TestTable WHERE [Id] >= @FirstId ORDER BY [Id] SET ROWCOUNT 0 GO
このストアド プロシージャは、SQL オプティマイザーの機能を利用して、最初の ID を効率的に検索します。 ROWCOUNT と組み合わせることで、CPU と読み取り効率の高いアプローチが保証されます。これは、行数がかなり多いテーブルに特に効果的です。
考慮事項
以上が大規模なデータセットに対して SQL Server でページングを効率的に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。