Oracle模式:如何使SQL性能得到改进?
tableA
AA varchar2 PK
BB number PK
CC varchar2 PK
DD number PK
EE number
SQL查询:
SELECT
X1.AA,
X1.CC,
X1.DD,
tableA.EE
FROM
tableA,
(SELECT
AA,
CC,
MAX(tableA.DD) DD
FROM
tableA
WHERE
(tableA.BB = 7 OR tableA.BB = 1) AND
tableA.EE <> 1
GROUP BY
AA,
CC
ORDER BY
AA ASC,
CC DESC
) X1,
(SELECT
AA,
MAX(tableA.CC) CC
FROM
tableA
WHERE
(tableA.BB = 7 OR tableA.BB = 1) AND
tableA.EE <> 1
GROUP BY
AA
ORDER BY
AA ASC
) X2
WHERE
X2.AA = X1.AA AND
X2.CC = X1.CC AND
X2.AA = tableA.AA AND
X2.CC = tableA.CC AND
X1.DD = tableA.DD
ORDER BY
AA ASC
无法读取此内容。做一个解释计划并寻找桌面扫描。如果你看到一个,这就是这个查询很慢的原因。 – duffymo
可能在某处创建索引? –
从X1和X2子查询中删除ORDER BY。它们是徒劳的 – StanislavL