mssql怪事:難道從100條記錄裏取出不重複的,就需要4秒鐘??!!

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的優化“弄巧成拙”!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章