我有具有以下定义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子句放在视图外面,查询运行得很快。我使用的这个观点在报告和查询运行很慢
问候 阿里夫
你有没有建立索引? –