現在、Entity Framework 4.1 (コードファースト) と SQL Server CE 4.0 を使用するアプリケーションに取り組んでいます。私が SQL Server CE 4.0 で本当に気に入っている新機能の 1 つは、計算値です。
しかし、古いデータを新しいデータ ストア システム (約 50000 エントリ) にインポートするときに、パフォーマンスの問題が発生します。これは、これに対する私の2番目の実装です。最初のバージョンでは、Entity Framework 4.0 と SQL Server CE 3.5 が使用されました。しかし、これらの実装には大きなパフォーマンスの違いがあります。コードの最初の実装ではエントリのインポートに約 1 時間かかりますが、他の実装では数分しかかかりません。
ほとんどの時間はSaveChanges
メソッドに費やされます。[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
問題を属性まで追跡しました。[DatabaseGenerated(DatabaseGeneratedOption.None)]
独自の生成キーを使用して実装すると (簡単な回避策として)、パフォーマンスは最初の実装のレベルに戻ります。
これは既知の問題ですか? このパフォーマンスの問題を解決する方法はありますか? または、独自のキーを生成するのが道ですか?