有一个视图select......
FROM [dbo].[xmlTicket] XT left join LSEPropertyNameList LP
on XT.PropertyName=LP.PropertyName and LP.ID=1 left join GetTicketQueuelist Q
on XT.AssignedToTeamName=Q.Name
where LP.PropertyName is not null
or Q.Name is not null 呈现主要连接关系,XT的数据量比较大,LP和Q的数据量都比较小几百,以上出现字段都添加了索引了,但是我估计是因为where语句的关系,速度很不理想,我想提取个top10000的数据看看都会花很久然后就懒得等手动中止了,求大神帮忙。
FROM [dbo].[xmlTicket] XT left join LSEPropertyNameList LP
on XT.PropertyName=LP.PropertyName and LP.ID=1 left join GetTicketQueuelist Q
on XT.AssignedToTeamName=Q.Name
where LP.PropertyName is not null
or Q.Name is not null 呈现主要连接关系,XT的数据量比较大,LP和Q的数据量都比较小几百,以上出现字段都添加了索引了,但是我估计是因为where语句的关系,速度很不理想,我想提取个top10000的数据看看都会花很久然后就懒得等手动中止了,求大神帮忙。
filter index。不是叫你过滤掉索引
你最好把执行计划搞出来看看问题出在哪里,如果可以的话,where条件最好多加点字段
select......
FROM [dbo].[xmlTicket] XT join LSEPropertyNameList LP
on XT.PropertyName=LP.PropertyName and LP.ID=1
union all
select......
FROM [dbo].[xmlTicket] XT
GetTicketQueuelist Q
on XT.AssignedToTeamName=Q.Name
檢查執行計劃,看計劃成本和使用到哪些索引,對於無法使用到索引的部份,可指定具體的索引,比便使用到索引提高查詢性能。