Tôi có truy vấn này trả về 7 hàng và mất 4ms trong cơ sở dữ liệu nhưng 1075ms để khởi tạo. Đó chỉ là một ví dụ về thời gian và nó thay đổi trên các đối tượng nhưng nó dường như không có ý nghĩa rằng phải mất quá lâu. Bất kỳ con trỏ về làm thế nào để tăng tốc độ?Danh sách <int> mất nhiều thời gian để nhanh chóng với Tiêu chí Nhibernate
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 tạo
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. Cảm ơn
Liệu nó thực hiện việc này từ lâu mỗi khi nó được chạy hay chỉ là lần đầu tiên? Bạn đang sử dụng trình tạo mã byte nào? – jonnii
@jonnii, Phải mất một thời gian dài mỗi lần. Ngoài ra mã byte là NHibernate.ByteCode.Castle. – Gage
@Gage những gì sẽ xảy ra nếu bạn thay đổi nó để trả về một IEnumerable thay vì IEnumerable và sử dụng List()? –
jonnii