2012-01-30 5 views
6

動的クエリを実行するとき、RavenDBは通常、一時インデックスを作成します。そのIdで文書を検索RavenDBは内部的に "id by document"型のクエリを最適化しますか?

は、この動作をトリガーしません:

var entity = documentSession.Query<Entity>().Single(x => x.Id == 1); 

んRavenDBは、クエリのこのタイプのビルトインの最適化がありますか?

+1

var entity = documentSession.Load (1);一時的なインデックスを作成せずに動作し、私は非常に高速ですが見つかりました。 – Phil

答えて

4

アーノルド、 いいえ、それはではないこの動作を最適化します。

1

一時インデックスが作成されるため、間違っています。あなたの例が "Temp/Entities/By__document_id"でなければならない場合、

+0

Raven Studioにそのようなインデックスは表示されません。 –

+0

私はちょうどそれを試みた - 私は私の場合にこのインデックスを持っています。すでにIDプロパティを含む別のインデックスがある可能性があり、クエリオプティマイザは新しいtempを作成する代わりにこのインデックスを使用します。しかし、新しい空のレーヴインスタンスがある場合は、一時インデックスが作成されます。 –

+0

私の場合、Raven Studioで表示される一時インデックスは作成されません。実行時のインデックス名は "Dynamic/Entities" –