我正在为我的公司测试Microsoft的ESENT(可扩展存储引擎)。但是,我有奇怪的表现结果。ESENT性能Vista vs XP
在类似技术(SqLite)的比较中,读取数据时性能非常弱。
在我的性能测试中,我或多或少地随机读取数据库中的所有数据。我不读两次相同的数据,所以我认为缓存不能帮助我。当数据“热”时,我多次运行测试以获得速度。我在long类型的id上使用索引。我使用以下函数:JetSetCurrentIndex,JetMakeKey,JetSeek和JetRetrieveColumn来读取。
在Windows Vista中,我激活了参数JET_paramEnableFileCache,它创造了奇迹,甚至比SqLite还要快。
但是,由于此参数在Windows Vista或更高版本上可用,因此Windows XP中的性能与SQlite相差无几(如慢15倍)。它每次都读取磁盘。在Windows XP上使用Sqlite时,所有读取测试(第一个除外)都不会在磁盘上读取。
我是否缺少另一个参数?
非常感谢!
感谢您的相关评论。实际上,我意识到没有任何东西阻止我在Windows XP或2000上使用来自Vista的esent.dll文件。这样,根据操作系统,我不必根据不同的代码进行编码。 – spaceboy 2011-04-07 13:22:46