首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ESENT性能Vista与XP

ESENT性能Vista与XP
EN

Stack Overflow用户
提问于 2011-03-24 03:33:02
回答 2查看 1.4K关注 0票数 1

我正在为我的公司测试微软的ESENT (可扩展存储引擎)。然而,我得到了奇怪的性能结果。

与类似的技术(SqLite)相比,在读取数据时性能非常弱。

在我的性能测试中,我或多或少随机读取数据库中的所有数据。我不会读取相同的数据两次,所以我认为缓存不能帮助我。我多次运行测试,以获得数据“热”时的速度。我在long类型的id上使用索引。我使用以下函数:JetSetCurrentIndex、JetMakeKey、JetSeek和JetRetrieveColumn来读取。

在Windows Vista中,我激活了参数JET_paramEnableFileCache,它创造了奇迹,甚至比SqLite还快。

但是,由于此参数在Windows Vista或更高版本上可用,因此在Windows XP中的性能无法与SQlite相提并论(比如慢15倍)。它每次都会在磁盘上读取。在Windows XP上使用Sqlite时,所有读取测试(第一个除外)都不在磁盘上读取。

我是不是遗漏了另一个参数,或者其他可以造成差异的东西?

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-07 11:07:15

如果JET_paramEnableFileCache提供了帮助,那么您每次都必须终止并重新启动该进程。引入JET_paramEnableFileCache是为了处理频繁初始化和终止的应用程序,这意味着必须使用操作系统文件缓存,而不是普通的数据库缓存。

如果您在XP上保持进程活动,那么您将看到数据“热”时的性能。

票数 4
EN

Stack Overflow用户

发布于 2011-05-14 18:00:34

@Spaceboy:我自己也在想……但是您要替换windir\system32中的ESENT.DLL吗?有时我会成功地将DLL放到我的\bin子目录中...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5410618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档