Gag*_*age 10 c# nhibernate criteria list
我有这个查询返回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>()
Run Code Online (Sandbox Code Playgroud)
SQL Query生成
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 */)
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.谢谢
显然减慢它的速度是SetParameterList调用.当我在获得8ms数据库和485ms实例化之前的格式化SQL时,这是可以接受的.我想要有更快的东西,但现在就可以做到.
这是我目前使用的代码:
var sql =
String.Format(
@"select circt_id as CircuitId from normal_upstream
where dni_equip_type = 'FDR_OCR'
start with up_equip_stn_no in ({0})
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 ({0})",
String.Join(",",upstreamStations.Select(x=>"'"+x+"'").ToArray()));
var criteria =
GetSession().CreateSQLQuery(sql)
.AddScalar("CircuitId", NHibernateUtil.Int32)
.List();
return criteria;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1266 次 |
最近记录: |