为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

4 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-01-07
?
米脂

TA贡献1836条经验 获得超3个赞

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

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

查看完整回答
反对 回复 2019-01-07
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

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

 

查看完整回答
反对 回复 2019-01-07
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-01-07
  • 4 回答
  • 0 关注
  • 556 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信