我正在为我的公司测试 Microsoft 的 ESENT(可扩展存储引擎)。但是,我有奇怪的性能结果。
与同类技术(SqlLite)相比,读取数据时性能很弱。
在我的性能测试中,我或多或少地随机读取了数据库中的所有数据。我不会两次读取相同的数据,所以我认为缓存无法帮助我。我多次运行测试以获得数据“热”时的速度。我在 long 类型的 id 上使用索引。我使用以下函数:JetSetCurrentIndex、JetMakeKey、JetSeek 和 JetRetrieveColumn 来读取。
在 Windows Vista 中,我激活了参数 JET_paramEnableFileCache,它创造了奇迹,甚至比 SqlLite 还要快。
但是,由于此参数在 Windows Vista 或更高版本上可用,因此在 Windows XP 中的性能无法与 SQlite 相比(比如慢 15 倍)。它每次都在磁盘上读取。在 Windows XP 上使用 Sqlite 时,所有读取测试(第一个除外)都不会在磁盘上读取。
我是否缺少另一个参数或会有所作为的东西?
非常感谢 !