ホームページ >データベース >mysql チュートリアル >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 サイトの他の関連記事を参照してください。