データが定期的に MS SQL DB に挿入され、Web アプリケーションを使用してこのデータをユーザーに表示する実行中のシステムがあります。
データの挿入中、ユーザーは引き続き DB を使用できるはずですが、残念ながら、今のところシステム全体を再設計することはできません。2 時間ごとに 40k ~ 80k のレコードが挿入されます。
現在、プロセスは次のようになっています。
- 一時テーブルが作成されます
- データは、プレーンな INSERT ステートメントを使用して挿入されます (パラメーター化されたクエリまたはストアド プロシージャーを使用すると、速度が向上するはずです)。
- 次を使用して、データが一時テーブルから宛先テーブルにポンプされます
INSERT INTO MyTable(...) SELECT ... FROM #TempTable
そのようなアプローチは非常に非効率的だと思います。なるほど、挿入フェーズは改善できますが (一括挿入ですか?)、一時テーブルから宛先へのデータ転送はどうでしょうか?