ホームページ > データベース > mysql チュートリアル > SQL Server テーブルからランダムな行を効率的に選択するにはどうすればよいですか?

SQL Server テーブルからランダムな行を効率的に選択するにはどうすればよいですか?

DDD
リリース: 2025-01-19 08:12:15
オリジナル
222 人が閲覧しました

How Can I Efficiently Select Random Rows from a SQL Server Table?

SQL Server でのランダム行選択への合理化されたアプローチ

大規模な SQL Server テーブルからランダムな行のサブセットを抽出すると、大量の計算が必要になる可能性があります。 複雑な一時テーブルや反復プロセスを使用するのではなく、SQL Server の固有の機能を利用する、より効率的で簡単な方法です。

NEWID() 関数は、一意のランダム GUID を生成し、ランダムな行選択の基盤を提供します。 [yourtable] という名前のテーブルから 10% のランダム サンプルを取得するには、次の簡潔なクエリを使用します。

<code class="language-sql">SELECT TOP 10 PERCENT * FROM [yourtable] ORDER BY NEWID()</code>
ログイン後にコピー

非常に大きなテーブルの場合、次の手法を使用してパフォーマンスの最適化が実現されます。

<code class="language-sql">SELECT * FROM [yourtable] WHERE [yourPk] IN (SELECT TOP 10 PERCENT [yourPk] FROM [yourtable] ORDER BY NEWID())</code>
ログイン後にコピー

このアプローチでは、キー スキャンを活用して、選択した行の主キー値を特定し、その後、元のテーブルと結合して完全な行データを取得します。 この結合操作は通常、特に大規模なデータセット上の小さな割合の選択の場合、最小限のオーバーヘッドで済みます。

これらの合理化された手法は、開発者に SQL Server テーブルからランダムなサンプルを選択する非常に効率的な手段を提供し、複雑でリソースを必要とする代替手段を回避します。

以上がSQL Server テーブルからランダムな行を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート