2014年1月20日 星期一

sqlcommand select 轉成 datatable 速度很慢

避免使用動態產生的欄位
select *, isnull(case when charindex(' ', 期別) > 0 then substring(期別, 1, charindex(' ', 期別)) else 期別 end, '') 學員期別 from 報到紀錄檢視 <= 很慢
select *, b.期別 from 報到紀錄檢視 a outer apply (select 學員期別(a.sid) 期別) b <= 快多了

有時 join 某個view 也會有這問題,但撈取資料很快,轉成datatable 才會變慢

推測是非實體表格欄位容易有這問題,此時盡量改用純量函數來取得複雜資料,外面再包一個 select 應該也有效果


沒有留言:

自訂權限驗證機制

// 使用 filter [Route("api/[controller]")] [ApiController] [Authorize] [TypeFilter(typeof(CustomAsyncAuthorizationFilter))] public c...