避免使用動態產生的欄位
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 應該也有效果
沒有留言:
張貼留言