当我在查询中使用group
来获取几列的总和时,它开始花费太多时间。
示例: -
SELECT
A.ID PROJECT_ID,
REGION.LEVEL2_NAME REGION,
A.LOCATION LOCATION,
A.DEPT DEPT,
REPLACE(A.ROLE_NAME, ',', '') ROLE_NAME,
A.MONTH_START,
TO_CHAR(A.MONTH_START,'MON YYYY') MONTH_LABEL,
Sum(A.value1),Sum(A.value2)
FROM
(/here is my Select Query which gives flat data with some 2 UNION Queries/ )A
INNER JOIN table REGION ON A.column1= REGION.column1
GROUP BY
A.ID,
A.ROLE_NAME,
A.LOCATION,
A.DEPT,
A.UNIT_OF_MEASURE,
REGION.LEVEL2_NAME,
A.MONTH_START
请建议。
答案 0 :(得分:0)
什么是“当我添加一个组时,它开始花了很长时间”?鉴于评论中的其他信息,我希望它需要很长时间。在添加组之前,您运行的查询可能会在执行查询时相当快地返回,然后根据您的客户端工具获取行的子集200-500。添加组时,数据库必须读入查询的所有行,因为它必须在返回任何单行之前聚合所有行。在4000万行,这可能需要一段时间。
我刚刚在这里发帖。但我对这个问题的评论是,在寻找性能帮助时,您需要提供其他信息。完整的查询会有所帮助,你已经遗漏了查询的很大一部分。所涉及的表上的数据模型,一些示例数据和一些其他数据卷。根据需要擦洗以保护信息。