读书人

Sql 查询性能有关问题

发布时间: 2012-12-16 12:02:32 作者: rapoo

Sql 查询性能问题
对sql查询机制不是太懂,对一张表(数量级百万)进行top 1000查询 用了 2秒 但是 top 10000却用了1分多钟,

有一个视图用了这张表连接其他表,top 1000 是9秒,到top 10000过了10分钟没有完成没有继续等。


请问问题出在什么地方?(sql server 2008)
[最优解释]
看看执行计划。才有比较准确的定论
[其他解释]
建议给车具体的查询语句 你直接这样写大家很难猜
[其他解释]
LZ请参考楼上所说~
[其他解释]
看看执行计划里面有没有表扫描或者聚集索引扫描、或者某个图标上有黄色的感叹号等等?然后看看图形化箭头的宽度是否从右面开始逐步减少。这些有也不一定表示存在问题。只是这些是需要注意的地方。
[其他解释]
对比一下两次执行的执行计划相差在哪里
[其他解释]

引用:
建议给车具体的查询语句 你直接这样写大家很难猜

原表的话 就是select top 1000 / top 10000 * from [UTSTicket].[dbo].[xmlTicket]
视图语句:
SELECT distinct 很多字段名 都来自于 XT
FROM [UTSTicket].[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


[其他解释]
你这个语句都是会全表扫描的吧 没索引利用 怎么快?
[其他解释]
引用:
看看执行计划。才有比较准确的定论


视图的执行计划好大我也不会看啊,又不知道怎么给你们看到。
[其他解释]
引用:
看看执行计划里面有没有表扫描或者聚集索引扫描、或者某个图标上有黄色的感叹号等等?然后看看图形化箭头的宽度是否从右面开始逐步减少。这些有也不一定表示存在问题。只是这些是需要注意的地方。


我尝试用了下top 5000 30分钟没有出结果,怎么开销涨了这么多?

读书人网 >SQL Server

热点推荐