VSS 相互運用 DLL と .NET を使用して新しいサブプロジェクトを作成し、各プロジェクトに多数の xml ファイルを保存しています。
基本的に、プロセスは同じドメインの VSS に接続します。メインの定義済みプロジェクトの下に 1000 以上のサブプロジェクトを作成する必要があり、それぞれについて、データベースから xml ファイルを取得し、それを一時的な場所のファイル ストリームに書き込み、VSS に追加します。
- サブプロジェクトは既に存在している可能性があるため、VSSItem が既に存在するかどうかもチェックし、次にすべての VSSItems をチェックして、保存しようとしているファイル名があるかどうかを確認します。
- はいの場合は、ファイルを一時的な場所にチェックアウトし、新しいファイルをチェックインして、チェックアウトした一時的な場所からファイルを削除します。
- それ以外の場合は、新しいファイルを追加します
- 最後に、ファイルストリームが保存された一時的な場所を削除します。
1000以上のアイテムに対して上記のプロセスを実行する必要があります。このプロセス全体に約 20 分かかります。プロセスは非同期であるため、独自のスレッドで実行されます。
ここでは WPF と WCF を使用しているため、WPF の構成ファイルでタイムアウトを増やすことで回避できる SendTimeout を受け取ることがあります。
私の質問は、VSS 処理はいつもとても遅いのですか?どうすれば高速化できるでしょうか?
コードを見直してみましたが、あまり改善する方法が見つかりませんでした。どんな助けでも大歓迎です。