SELECT a AS a,
b AS b,
c AS c,
d AS d,
e AS e,
f AS f,
g AS g,
h AS h
FROM (
SELECT P.*,
ROW_NUMBER() OVER (PARTITION BY p.a, RANK_NM
ORDER BY P.ID DESC) RW_NUM
FROM (
SELECT T.a,
T.b,
T.c,
T.d,
T.e,
T.f,
T.g,
T.h,
T.ID
DENSE_RANK() over (PARTITION BY T.a
ORDER BY T.b, T.c, T.d
, T.e, T.f, T.g, T.h
DESC) RANK_NM
FROM TEST_TABLE T ) p) Y
WHERE RW_NUM = 1
我从生产团队那里得到了这个调优查询,我无权访问生产和其他东西,我必须向生产人员提供查询才能执行,他们期待奇迹。问题是 TEST_TABLE 包含 9800 万条记录,此查询用于 informatica 并创建巨大的缓存。有什么方法可以用更好的方式编写查询,只需查看查询。我知道调整需要很多东西和信息,但这就是我所得到的。:) 数据库是 oracle 10 g。