私は、データベースのさまざまなテーブルに保存する必要がある複数のソースからデータを受け取るプロジェクトに取り組んでいます。
速い。
私はさまざまな方法で遊んできましたが、これまでに見つけた最速の方法は、TableValue パラメーターのコレクションを使用してそれらを埋め、対応するストアド プロシージャのコレクションを介して定期的にデータベースに送信することです。
結果はかなり満足です。ただし、ディスク使用率 (Perfmon の % Idle Time) を見ると、ディスクが定期的に「スラッシング」されていることがわかります (13 ~ 18 秒ごとに 0% まで「急上昇」します)。約90%。「バッチ」サイズを変えてみましたが、大きな影響はありません。
- 全体的なアイドル時間を減らしながら、(何らかの方法で) スパイクを回避することで、スループットを向上させることができますか?
- スパイクが発生している場所を特定するために注意すべき点は何ですか? (データベースは簡易復旧モードであり、事前に「大きい」サイズに設定されているため、ログ ファイルは大きくなりません)
- おまけ:データベースへのデータの「ストリーミング」に関する他の質問を見てきましたが、これには
Stream
別のデータベースからのデータが含まれているようです(最後のセクションはこちら)。そこにデータを「プッシュ」する方法はありますか?