ホームページ >データベース >mysql チュートリアル >SQL Server テーブルから行のランダムなサンプルを効率的に選択するにはどうすればよいですか?
SQL Server テーブルからのランダム サンプルの生成は、さまざまな目的に役立つ操作です。一般的な解決策は、テーブルから固定数の行をランダムに選択することです。
複雑なメソッドの欠点
この記事で言及されている問題は、一時テーブルと RAND() ループを使用した複雑なメソッドを指摘しています。これらの方法は非効率的で柔軟性に欠けます。
NEWID() メソッドの制限
この記事では、NEWID() 関数を使用した別の方法についても言及しています。ただし、このアプローチは、特定の割合の行を選択するという要件には適さない場合があります。
T-SQL ソリューション
この問題を解決するために、この記事では SQL Server スクリプトを提供しています。
<code class="language-sql">select top 10 percent * from [yourtable] order by newid()</code>
このステートメントは NEWID() 関数と TOP 句を使用して行の上位 10% を選択し、テーブルのランダムなサンプルを返します。
大規模なテーブルの最適化方法
大規模なテーブルの場合、次の変更されたスクリプトを使用することでパフォーマンスを向上させることができます:
<code class="language-sql">select * from [yourtable] where [yourPk] in (select top 10 percent [yourPk] from [yourtable] order by newid())</code>
このメソッドは 2 つのステップで機能します。まず、ランダムな主キー値を選択し、次にこれらの主キー値を使用して対応する行を取得します。キーのスキャンと結合のコストのバランスが取れ、大規模なテーブルの効率が向上します。
以上がSQL Server テーブルから行のランダムなサンプルを効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。