SQL Server 2008(再帰的な)CTEを使用して400万行のテーブルの1回に100万行を選択したいとします。結果はテキストファイルに書き出されますが、これはCTEチャンクパートではありません。チャンクで選択するCTE?
表には、DateTime列には良好なカバリングインデックスがありますが、PKはありません。
誰にも提案はありますか?
ありがとうございました。
SQL Server 2008(再帰的な)CTEを使用して400万行のテーブルの1回に100万行を選択したいとします。結果はテキストファイルに書き出されますが、これはCTEチャンクパートではありません。チャンクで選択するCTE?
表には、DateTime列には良好なカバリングインデックスがありますが、PKはありません。
誰にも提案はありますか?
ありがとうございました。
ROW_NUMBER() OVER(PARTITION BY 1 ORDER BY <column>) as PK_Key
ウィンドウ機能を使用してpsuedo PKを作成できますが、選択ごとにテーブル全体が注文されるため、これは最適ではありません。
これを実行するより良い方法は、正確に1mの行ではなく、自分が持っているインデックスで文をチャンクすることです。つまり、あなたのデータのいくつかを調べ、あなたが望むものを達成するための任意の制限を選択します。 1か月におよそ1mの行がある場合は、各データ検索操作のために、1ヶ月分のデータを取得します。再帰的なデータ構造を扱っていないので、CTEは必要ありません。
ここには情報が不十分です。正確な表構造、索引、および望ましい結果を与えます。再帰的または非再帰的なCTEを使用するか使用しないかによって、任意のテーブルからチャンクを選択する方法は約100万種類に過ぎません。 –