【发布时间】:2013-09-01 01:56:42
【问题描述】:
我真的需要以下查询的帮助;使用 CTE 和连接执行需要 44 多秒,但是,当我运行单独的 select 语句时,每个语句只需要 1 秒。为什么我加入他们需要 44 秒?
WITH Z
AS (SELECT GM,
YQ,
IG
FROM FN_qryFYQI(@pYQ1)),
Y
AS (SELECT GM,
YQ,
IG
FROM FN_qryFYQI(@pYQ2))
SELECT Z.GM,
Z.IG AS IG1,
Y.IG AS IG2
FROM Y
INNER JOIN Z
ON Y.GM = Z.GM
【问题讨论】:
-
FN_qryFYQI(@pYQ2)是一个函数吗?你能发布它的定义吗? -
还有执行计划。
-
以及相关的表定义,包括任何键和/或索引。
-
你试过没有 CTE 吗?只需简单加入:
SELECT Z.GM, Z.IG AS IG1, Y.IG AS IG2 FROM FN_qryFYQI(@pYQ2) Y INNER JOIN FN_qryFYQI(@pYQ1) Z ON Y.GM = Z.GM
标签: sql sql-server-2008 tsql join