首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非键上的NHibernate查询要比对单列主键的查询花费更长的时间来水合物对象。

非键上的NHibernate查询要比对单列主键的查询花费更长的时间来水合物对象。
EN

Stack Overflow用户
提问于 2011-12-16 06:37:38
回答 1查看 191关注 0票数 1

我注意到NHibernate有一种奇怪的行为。

上下文:我有一个带有复合键的表(一个数字、一个字符串和一个日期)和一些其他列。我注意到这个表上的查询(hibernate类)比其他表上的查询慢得多。即使只有一个记录(hibernate对象)返回。

观察:

引入代理键并将其映射为主键,再次运行查询将使对象的对象Hydration.

  • Hydration的性能提高6-7倍,如果在代理键上查询的话。2.

在所有上述查询运行中,数据库性能是一致的。

在此表的hibernate映射中没有定义任何关联或关系。

我无法解释对象水合(用数据填充.Net对象)的性能差异。

当我必须使用标准中的另一列时,我可以做些什么来调整代码,使其与使用PK的查询一样具有性能。

提前谢谢

基兰

编辑:表格结构。我已经输入了创建表脚本本身。因为我无法正确地格式化它..。

创建表"TEST“( "REFERENCE”VARCHAR2(5字节) NULL、“优先级”编号(6,0)不为空、"EFF_FROM_DATE“日期不为空、"EFF_TO_DATE”日期不为空、“值”“VARCHAR2”(100字节)不为空、"LAST_UPDATE_USERNAME“VARCHAR2(30字节)不为空、"LAST_UPDATE_DATE_TIME”日期不为空、"NOTE_1“VARCHAR2(20字节),"NOTE_2“VARCHAR2(20字节)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-27 05:28:36

这种差异通过迫使nhibernate使用oracle驱动程序而不是Microsoft驱动程序来解决。

我遵循了这个博客http://www.timvasil.com/blog14/category/Oracle.aspx中的步骤

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

https://stackoverflow.com/questions/8530643

复制
相关文章

相似问题

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