【发布时间】:2022-01-23 21:52:08
【问题描述】:
我有以下查询,该查询有效,但运行时间超过 30 分钟。最初的外部查询拉回大约 1400 行,然后子查询在某些情况下拉回 100 奇数行。
;WITH products AS (
SELECT
PromotionID,
ProductColourID,
ProductCode
FROM dbo.PromotionProducts
)
SELECT
P.ID,
P.Code,
P.Name,
P.EndDateTime,
prods = (
SELECT
pp.productColourId,
pp.ProductCode
FROM products
FOR JSON PATH
)
FROM dbo.Promotion P
JOIN products PP ON P.ID = PP.PromotionID
WHERE P.EndDateTime > GETDATE()
有什么办法可以加快速度吗?
【问题讨论】:
-
子查询不相关,因此对于外部查询的每一行,它将拉入整个表。然后你在外部查询中再次加入它,这是为了什么?
标签: json sql-server tsql