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

SQL Server 联查 加上order by 执行速度好慢

SQL Server 联查 加上order by 执行速度好慢

至尊宝的传说 2018-12-06 12:49:55
select u.cncEmployeeID ,u.cnvcName uName,u.cnvcAccount ,u.cnvcLevel ,j.cniOrder ,j.cnvcJob,u.cniOrganId ,cnvcHeadImg,o1.cnvcName oName,o1.cniNodeID from tbLeaderJob j inner join tbuser u on j.cncEmployeeId=u.cncEmployeeId inner join tbOrgan o1 on u.cniOrganId =cniNodeID inner join tbLeaderPermissions on j.cncEmployeeId=cncUserIDwhere j.cncState='1' order by j.cniOrder desc   加上排序就好慢,不加就秒开。求大神解答tbuser  、tbOrgan  大概有10w左右数据。其他的表大概就几百条数据
查看完整描述

5 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

1.查询出来的结果集应该不多吧,你可以先把数据查询出来后,在程序里面做排序

2.或者是用临时表存储查询结果,然后再排序

查看完整回答
反对 回复 2019-01-07
?
慕仙森

TA贡献1827条经验 获得超8个赞

对需要order by的字段建立好索引就不会好慢了

查看完整回答
反对 回复 2019-01-07
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

sql查询可以说排序是最耗时的,诚如楼上所说1、对排序字段建立索引;2、优化where语句减小数据集

查看完整回答
反对 回复 2019-01-07
?
弑天下

TA贡献1818条经验 获得超8个赞

WITH J
(
 SELECT j.cniOrder,j.cnvcJob, j.cncEmployeeId
 FROM tbLeaderJob J
 WHERE  j.cncState='1'
 ORDER BY j.cniOrder desc 
)
SELECT 
u.cncEmployeeID
,u.cnvcName uName,u.cnvcAccount
,u.cnvcLevel
,j.cniOrder
,j.cnvcJob
,u.cniOrganId
,cnvcHeadImg,o1.cnvcName oName,o1.cniNodeID
FROM J
inner join tbuser u on j.cncEmployeeId=u.cncEmployeeId
inner join tbOrgan o1 on u.cniOrganId =cniNodeID inner join tbLeaderPermissions on j.cncEmployeeId=cncUserID

 

试下这句看看,

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

添加回答

举报

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