Tho*_*que 10 .net nhibernate performance orm
我的公司正在从头开始重写现有的应用程序.除其他任务外,此应用程序还针对订单和发票数据执行复杂的SQL查询,以生成销售报告.查询是根据用户选择的条件动态构建的,因此如果选择了许多条件,它们可能会非常复杂.目前,表现不错,但不是很好.
现在,对于新版本,我们想使用ORM,可能是NHibernate,因为它显然是唯一支持Oracle Lite的应用程序(该应用程序使用Oracle或Oracle Lite,具体取决于它是以连接模式还是以断开模式运行).但我担心NHibernate生成的查询的性能.之前我曾与其他ORM合作过(Linq to SQL,Entity Framework),但查询非常简单,因此没有性能问题.
所以,在我决定使用ORM或保留纯SQL之前,我想知道这些工具处理外连接,子查询等场景的程度如何......你认为ORM(特别是NHibernate)是适合在上述报告场景中使用?我应该担心复杂查询的性能吗?
任何反馈将不胜感激
NHibernate有一点学习曲线,但是值得学习,因为花费的时间会多次付出代价.我会推荐NHibernate in Action一书来学习,因为它是一个很好的资源,涵盖了你的问题所要求的一切以及更多.
可以调整NHibernate性能(参见下面的链接),NHibernate具有强大的缓存机制.
http://www.codeproject.com/KB/database/NHibernate_Perf.aspx https://www.hibernate.org/hib_docs/nhibernate/html/performance.html
最终,性能将由谁在SQL中编写查询来确定.
如果您正在寻找具有全面高效LINQ转换器的ORM,我建议您尝试使用Entity Framework或DataObjects.Net.我不确定Oracle Lite支持.NHibernate的LINQ翻译器尚未完全完成.
无论如何,你现在可以做的最好的事情是下载领先的ORM工具并使用分组,连接,子查询等对棘手的查询进行测试.