Ho questa query che restituisce 7 righe e richiede 4 ms nel database ma 1075ms per creare un'istanza. Questo è solo un esempio dei tempi e varia sugli oggetti, ma non sembra avere senso che ci voglia così tanto tempo. Qualche suggerimento su come aumentare la velocità?L'elenco <int> impiega molto tempo per creare un'istanza con criteri di inibizione
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>()
query SQL generato
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 */)
Ogni aiuto è apprezzato. Grazie
ci vuole questo lungo ogni volta che viene eseguito o solo la prima volta? Quale generatore di codice byte stai usando? – jonnii
@jonnii, ci vuole molto tempo ogni volta. Anche il codice byte è NHibernate.ByteCode.Castle. – Gage
@Gage cosa succede se lo si cambia per restituire un oggetto IEnumerable anziché IEnumerable e utilizzare List()? –
jonnii