0

给定下面的 OrderLine 表:

OrderID    OrderLineID
=======    ===========
  1             1
  1             2
  2             3
  3             4
  1             5
  3             6
 ...           ...
 ...           ...
221 123      365 282

鉴于用户不时需要访问此信息,找到每个订单的 FIRST OrderLine 的最有效方法是什么?

这是我找到第一个 OrderLine 的 SQL,但每次执行大约需要 3~5 秒。(约 300k 行)

SELECT OrderID, MIN(OrderLineID)
FROM OrderLine
GROUP BY OrderID

当我需要找到第一个订单行以加入另一个表时,每次重复此操作非常昂贵。考虑到更改表结构不是一种选择,我有什么可能的解决方案来改进它?

4

1 回答 1

0

尝试按 OrderID 和 OrderLineID 添加索引。

(你说你不能改变表结构。如果你被允许改变结构,你可以添加一个标志来标识每个订单的第一行,然后按该标志索引。)

于 2013-07-16T14:39:36.003 回答