列表使用 Nhibernate Criteria 实例化需要很长时间
我有一个查询,它返回 7 行,在数据库中花费 4 毫秒,但实例化需要 1075 毫秒。这只是时代的一个例子,它因对象而异,但花费这么长时间似乎没有意义。有关如何提高速度的任何指示吗?
var criteria =
GetSession().CreateSQLQuery(
@"
select circt_id as CircuitId from normal_upstream
where dni_equip_type = 'A'
start with up_equip_stn_no in (:UpStationNo1)
connect by prior equip_stn_no = up_equip_stn_no
union
select circt_id as CircuitId
from normal_upstream
where up_equip_stn_no in (:UpStationNo1)")
.AddScalar("CircuitId", NHibernateUtil.Int32).SetParameterList("UpStationNo1",upstreamStations)
.List<int>()
生成的 SQL 查询
select
circt_id as CircuitId
from normal_upstream
where dni_equip_type = 'A'
start with up_equip_stn_no in (
'B' /* :p0 */)
connect by prior equip_stn_no = up_equip_stn_no
union
select
circt_id as CircuitId
from normal_upstream
where up_equip_stn_no in (
'B' /* :p1 */)
如有任何帮助,我们将不胜感激。谢谢
I have this query which returns 7 rows and takes 4ms in the database but 1075ms to instantiate. That is just one example of the times and it varies on the objects but it doesn't seem to make sense that it takes so long. Any pointers on how to increase the speed?
var criteria =
GetSession().CreateSQLQuery(
@"
select circt_id as CircuitId from normal_upstream
where dni_equip_type = 'A'
start with up_equip_stn_no in (:UpStationNo1)
connect by prior equip_stn_no = up_equip_stn_no
union
select circt_id as CircuitId
from normal_upstream
where up_equip_stn_no in (:UpStationNo1)")
.AddScalar("CircuitId", NHibernateUtil.Int32).SetParameterList("UpStationNo1",upstreamStations)
.List<int>()
SQL Query generated
select
circt_id as CircuitId
from normal_upstream
where dni_equip_type = 'A'
start with up_equip_stn_no in (
'B' /* :p0 */)
connect by prior equip_stn_no = up_equip_stn_no
union
select
circt_id as CircuitId
from normal_upstream
where up_equip_stn_no in (
'B' /* :p1 */)
Any help is appreciated. Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
显然,减慢速度的是 SetParameterList 调用。当我格式化 SQL 之前,我得到了 8 毫秒数据库和 485 毫秒实例化的结果,这是可以接受的。我想要更快的东西,但现在就这样了。
这是我当前使用的代码:
Apparently what was slowing it down was the SetParameterList call. When I format the SQL before I get something along the lines of 8ms database and 485ms instantiation, which is acceptable. I'd like to have something faster but that will do for now.
Here is the code I'm currently using: