2009-04-03 21 views
2

私は4000万行のテーブルを持っています。
私は一度に約200万を拾い上げて、それらを「処理」したいと思います。
なぜですか?
コサイズ処理10百万以上の行がパフォーマンスを低下させ、しばしばタイムアウトします。 (私はこれをデータサイズに依存しないようにする必要があるので、タイムアウトの制限を増やしてください。)
また、私はSQL Serverを使用しています。
SQLテーブルのすべての行を一度に取得する方法はありますか?

答えて

1

IDキーなどの増加するキーはありますか?それはクラスタ化インデックスですか?もしそうなら、あなたがするようになった最後のキーを追跡することはかなり簡単であるべき、とのようなものです:

また
SELECT TOP 1000000 * 
FROM [MyTable] 
WHERE [Id] > @LastId 
ORDER BY [Id] 

は - あなたはあまりにも多くをバッファリングされないように、ExecuteReaderようなもので、それを必ずお読みください行。

もちろん、数千行を超える場合は、往々にして往復を受け入れるだけでなく、一度に10000行のリクエストを多数行うことができます。私はこれが現実的にはあまり効率的ではないと思う(数ミリ秒こことそこに)。

+0

身分証明書キーがありません。私がしたら人生は簡単だろう。 多分私はダンテーブルにIDキーを追加するつもりです。 –

関連する問題