私は自分の会社のためにMicrosoftのESENT(Extensible Storage Engine)をテストしているところです。しかし、私は奇妙なパフォーマンス結果を持っています。
同様のテクノロジー(SqLite)と比較すると、データを読み取るときのパフォーマンスは非常に弱かった。
私のパフォーマンステストでは、データベース内のすべてのデータを多かれ少なかれランダムに読み取りました。同じデータを2回読み取らないので、キャッシュは役に立たないと思います。データが「ホット」なときの速度を得るために、テストを何度も実行します。long型のIDにインデックスを使用します。次の関数を使用します:JetSetCurrentIndex、JetMakeKey、JetSeek、JetRetrieveColumn。
Windows Vistaでは、パラメーターJET_paramEnableFileCacheをアクティブにしたところ、奇跡が起こり、SqLiteよりもさらに高速でした。
ただし、このパラメーターはWindows Vista以降で使用できるため、Windows XPのパフォーマンスはSQliteに匹敵するものではありません(15倍遅いなど)。毎回ディスクを読み取ります。Windows XPでSqliteを使用する場合、すべての読み取りテスト(最初のテストを除く)がディスクで読み取られるわけではありません。
別のパラメーターまたは違いを生む何かが欠けていますか?
どうもありがとう !