我注意到NHibernate有一种奇怪的行为。
上下文:我有一个带有复合键的表(一个数字、一个字符串和一个日期)和一些其他列。我注意到这个表上的查询(hibernate类)比其他表上的查询慢得多。即使只有一个记录(hibernate对象)返回。
观察:
引入代理键并将其映射为主键,再次运行查询将使对象的对象Hydration.
在所有上述查询运行中,数据库性能是一致的。
在此表的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字节)
发布于 2011-12-27 05:28:36
这种差异通过迫使nhibernate使用oracle驱动程序而不是Microsoft驱动程序来解决。
我遵循了这个博客http://www.timvasil.com/blog14/category/Oracle.aspx中的步骤
https://stackoverflow.com/questions/8530643
复制相似问题