我注意到NHibernate有一种特殊的行为。
上下文: 我有一个带有复合键的表(一个数字,一个字符串和一个日期)和一些其他列。我注意到这个表(hibernate类)的查询明显慢于其他表上的查询。即使只返回了一个记录(hibernate对象)。
观察:
在上述所有查询运行中,数据库性能都是一致的。
此表的hibernate映射中没有定义关联或关系。
我无法解释对象水合作用的性能差异(用数据填充.Net对象)。
当我必须在条件中使用其他列时,我可以做些什么来调整代码,使其与使用PK的查询一样高效。
先谢谢
基兰
编辑:表结构..我已经放入了创建表脚本本身..因为我无法正确格式化..
创建表“测试” ( “REFERENCE”VARCHAR2(5 BYTE)NOT NULL, “PRIORITY”NUMBER(6,0)NOT NULL, “EFF_FROM_DATE”DATE NOT NULL, “EFF_TO_DATE”DATE NOT NULL, “VALUE”VARCHAR2(100 BYTE)NOT NULL, “LAST_UPDATE_USERNAME”VARCHAR2(30 BYTE)NOT NULL, “LAST_UPDATE_DATE_TIME”DATE NOT NULL, “NOTE_1”VARCHAR2(20 BYTE), “NOTE_2”VARCHAR2(20 BYTE) )
答案 0 :(得分:0)
这种差异是通过强制nhibernate使用Oracle驱动程序而不是oracle的Microsoft驱动程序来解决的。
我按照此博客中的步骤操作 http://www.timvasil.com/blog14/category/Oracle.aspx