使用order by时,SQL Query占用了无限的时间

时间:2017-04-19 06:42:18

标签: sql-server sql-order-by

以下是我的SQL查询

select top(10) ClientCode
FROM (((Branch INNER JOIN BusinessLocation ON 
Branch.BranchCode=BusinessLocation.BranchCode) 
INNER JOIN Center ON BusinessLocation.LocationCode = Center.LocationCode) 
INNER JOIN Groups ON Center.CenterCode = Groups.CenterCode) 
INNER JOIN Client ON Groups.GroupCode = Client.GroupCode 
WHERE
((Client.CBStatus) IS NULL) AND ((Branch.PartnerName) in 
('SVCL','Edelweiss'))
order by Client.ClientCode DESC

当我在没有订单的情况下运行它运行正常,但是由于订单没有完成执行。为什么会出现这种情况?

1 个答案:

答案 0 :(得分:0)

当您选择使用TOP语句时,不必计算每一行的计算和连接。当您尝试订购时,需要计算所有行的至少一个单元格。这是一个很长的查询,因为您的表很大并且行为没有错误。不要在没有订单的情况下快速运行查询,误导您第二次查询的复杂性。

您可以在clientcode列上创建索引。这样可以加快速度。