新しいWebサイトのバックエンドとしてdb4oを使用しようとしています。
私は賢明だと思ったように設定し、約5kのレコードを挿入しました(1つのオブジェクトタイプのみで、約7つのプリミティブフィールドがあります)。
私が読んだいくつかのブログ投稿によると、私はプロパティを非自動プロパティとして設定し、パブリックプロパティによって公開されているプライベートメンバーにインデックスを設定しようとしました。
クエリのパフォーマンスは非常に悪く、単純なインデックス付きルックアップには最大3/4秒かかります。
私の実装は次のとおりです。私の「サーバー」は静的シングルトンであり、アプリケーションインスタンスごとに1回だけ開かれます。
Db4oFactory.Configure().ObjectClass(typeof(MyObject)).ObjectField("_Id").Indexed(true);
server = Db4oClientServer.OpenServer("DatabseName", 0);
次に、クエリを実行します。
using (var ooDB = server.OpenClient())
{
var movieFound = (from MyObject m in ooDB
where m.Id == IdToFind
select m).FirstOrDefault();
}
私のオブジェクトを次のように使用します。
public class MyObject
{
protected string _Id;
public string Id
{
get { return _Id; }
set { _Id = value; }
}
}
オブジェクトのIDは文字列です。
私は何を間違っているのですか!
乾杯、デイブ