我有具有以下定義SQL視圖性能優化
create view mydashboard as
SELECT distinct
cu.CrimeID,
ad.DeptID,
ad.CrimeDate,
cd.DeptIncidentID,
ad.crime,
u.username
from alldatescrimes ad
inner join crimeslist cl
on
ad.crime = cl.crime
inner join users u
on
u.DeptID = ad.DeptID
left join crimelookup cu
on cu.CrimesListID = cl.CrimeListID
left join crimesdetail cd
on
ad.CrimeDate = cast(cd.CrimeDate as date)
and
ad.DeptID = cd.DeptID
and
cu.CrimeID = cd.CrimeID
我的問題是,如果我把where子句視圖外,查詢運行速度非常慢的視圖。見下面的例子
select *
from mydashboard
where
(username = 'john'
or
DeptIncidentID is null
)
and
CrimeDate = '2014-06-16'
相反如果我把同在視圖內子句,查詢在2-3秒內
非常fast..like運行我的問題是我可以採取什麼步驟所以如果我把where子句放在視圖外面,查詢運行得很快。我使用的這個觀點在報告和查詢運行很慢
問候 阿里夫
你有沒有建立索引? –