首页 新闻 会员 周边

SQL server 对结果集里的某个字段进行排序时特别慢

0
[已解决问题] 解决于 2017-09-07 09:04

这个字段是通过子查询而来,并且是把多行用逗号隔开的,使用的是for xml path 语法,然后使用STUFF函数切割一下, 这样就得出这一列,然后在最后面再包一层select *。在最外层排序使用这一列, 导致查询速度特别慢, 用什么方法可以是查询速度快一点,通过这一列来排序时。

奇妙能力的主页 奇妙能力 | 菜鸟二级 | 园豆:253
提问于:2017-01-22 09:53
< >
分享
最佳答案
0

对计算出来的结果做排序是用不了索引的,这个要找过另一种方法,从侧面去排序,把实际sql代码贴出来,需求说一下,说不定有其他方法可以解决这个问题。

奖励园豆:5
Merger | 菜鸟二级 |园豆:225 | 2017-04-12 09:48
其他回答(1)
0

1、查看下SQL 执行计划,贴出来,看是那一步引起的

2、查询慢的话可以加索引

吳先森321 | 园豆:347 (菜鸟二级) | 2017-01-22 10:37

以下是查询计划, 对结果集中这个字段的排序,开销61%

 

支持(0) 反对(0) 奇妙能力 | 园豆:253 (菜鸟二级) | 2017-01-22 10:55

索引的话, 我是对查询出来的结果集进行的排序,而且这个字段是通过xml的格式,把多行合并为一行的。本源表中这个字段是uniqueidentifier类型的数据, 本来就做了非聚集索引。

支持(0) 反对(0) 奇妙能力 | 园豆:253 (菜鸟二级) | 2017-01-22 10:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册