select distinct f1 from viewABC 需要5秒鐘,
而select f1 from viewABC 只需要1秒鐘,而且記錄數也不到100條
難道從這100條記錄裏再取出不重複的,就需要4秒鐘??!!
感覺是數據庫引擎優化時自動把distinct移到viewABC裏面去執行了,
所以優化反而成了弄巧成拙。。。。。。
怎麼阻止它這樣“優化”呢?
select distinct f1 from (
select f1 from viewABC
) a
也要5秒
select f1,count(*) from (
select f1 from viewABC
) a
group by f1
也要5秒
declare @tb table(f1 varchar(100))
insert @tb select f1 from viewABC
select distinct f1 from @tb
就只要1秒!
但是這個過程無法作爲視圖,因爲含有declare。。。。。。。
看來的確是mssql的優化“弄巧成拙”!