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

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

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-19 07:56:09445ブラウズ

How to Efficiently Select a Random Sample of Rows from a SQL Server Table?

SQL Server テーブルからランダムな行を選択する: 実践ガイド

このガイドでは、大規模な SQL Server テーブルから行のランダム サンプルを取得するという一般的な課題に対処します。 このタスクを達成するための効率的な方法を検討します。

課題:

大規模なデータセットを操作するには、多くの場合、分析またはテストのために行の代表的なランダムなサブセットを抽出する必要があります。 これを行うための迅速かつ信頼性の高い方法を見つけることが重要です。

効果的な解決策:

NEWID() 関数は、ランダムな行を選択するための簡単なアプローチを提供します。 次のクエリは行の 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>

この方法では主キー スキャンと結合を利用するため、大規模なデータセットと小さいサンプル サイズを扱う場合、より単純な TOP アプローチと比較して効率が向上します。 [yourtable][yourPk] を実際のテーブル名と主キーの名前に置き換えることを忘れないでください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。