当我运行此查询时,它会 32秒。这个相同的查询没有改变它在 17秒中执行的任何事情直到昨天。
表格信息:
Item
table = 158,117条记录Transaction
table = 4,096,589条记录TransactionEntry
table = 70,165,678条记录我已按以下方式为这些表创建了索引
指数:
Item
table = ID, ItemLookupCode, SupplierID, ParentItem
Transaction
table = Time, TransactionNumber, StoreID
TransactionEntry
table = TransactionNumber, StoreID, Quantity, Price, Cost
这是我的疑问:
--Total Quantity
SELECT
items.ItemLookupCode,
sum(transactionsEntry.Quantity) Quantity,
sum(transactionsEntry.Quantity*transactionsEntry.Price) TotalPrice,
sum(transactionsEntry.Cost*transactionsEntry.Quantity) as ExtendedCost
INTO
##temp_TotalQuantity
FROM
(SELECT
TransactionNumber, StoreID, Time
FROM
[HQMatajer].[dbo].[Transaction]
WHERE
Time >= CONVERT(datetime, '2015-01-01 00:00:00', 102)
AND Time <= CONVERT(datetime, '2015-12-31 23:59:59', 102)
) transactions // this subquery alone taking 12 seconds
INNER JOIN
[HQMatajer].[dbo].[TransactionEntry] transactionsEntry ON transactionsEntry.TransactionNumber = transactions.TransactionNumber
AND transactionsEntry.StoreID = transactions.StoreID
INNER JOIN
[HQMatajer].[dbo].[Item] items ON transactionsEntry.ItemID = items.ID
GROUP BY
items.ItemLookupCode
执行计划: