ActiveRecord / NHibernate和SQL CE的性能问题

时间:2010-07-21 13:43:00

标签: performance nhibernate sqlite activerecord sql-server-ce

我们的团队目前正在开发一个带有ActiveRecord和SQLCE 3.5的WPF桌面应用程序,用于后端。在执行查询或创建/更新记录时,我们遇到了一些奇怪的性能问题。在某些情况下,打开一个有几个网格和需要填充的数据元素的表单,大约需要2秒!这在桌面应用程序上不是很理想。我们使用Active Record和Fluent NHibernate进行了一些测试,发现给定一个非常简单的实体(2个字符串字段,没有关联),对Create()的调用将首次采用300ms,接下来的时间约为100ms。对于FindAll(假设表中只有5-6行),第一次调用大约需要200ms,后续调用大约需要80ms。 SQLite有点快(在某些情况下大约一半的时间),但SQL Server相当快;第一次调用后查询和插入大约5-6 ms!

我们进一步挖掘,问题(或许其他事情)似乎与会话创建和发布有关。对于SQLCE和SQLite来说,它们似乎相当慢。对于大型数据集,性能似乎与SQL Server类似,这使我认为问题不在于查询本身的执行。但是考虑到ActiveRecord,NHibernate和数据库之间发生的各种缓存和会话管理,我不太确定问题究竟在哪里。

SQLCE(和SQLite)的这种性能是否正常?是否有任何调整可以改善这一点?我希望这些比SQL Server更快,当然不是100+ ms来执行简单的操作。任何提示或建议都会很棒!

0 个答案:

没有答案