Entity Framework 5 Code Firstアプローチを使用して、MS-AccessデータベースをSQL ServerCompact4.0に移行しています。データベースで生成された整数IDの使用は非常に遅く、さらに悪いことに、データベースのサイズに応じて遅延が指数関数的に増加することがわかりました。これにより、Identity列を使用できなくなり、エンティティフレームワークと組み合わせたSQL ServerCompact4.0でこの機能の実装が不適切になっているようです。
そこで、いくつかのテストを実行したところ、クライアント側で生成されたキーを使用すると、挿入が少なくとも20倍速くなり、挿入の指数関数的な増加がなくなることがわかりました。
現在、クライアント側のIDを生成するための最良の方法を検討しています。GUIDを使用するのが最も安全なオプションのようですが、これは読み取りアクションに悪影響を与えることを私は読みました。クライアント側で生成される自動インクリメントされた整数を使用する戦略はありますか?
編集:私はさらに質問につながる根本的な問題を調査します。それまでの間、私の本当の質問に答えてもらえますか?:-)
EDIT2:EFおよびSQL ServerCompact4.0で自動IDを使用するのが非常に遅いという主張を誰も信じていないように思われるのはかなり腹立たしいことです。これについては、簡単に再現できる概念実証とともに、別の質問を投稿しました。