【发布时间】:2019-05-20 10:56:32
【问题描述】:
我们有这个查询,我们试图通过多个信用选项指标来识别客户。我们必须将这个查询输出反映在我们的报告中并分享给业务用户。我们几乎每周都必须运行这个查询,而且这个查询需要时间。
查询
select CUST_ID, CUST_COUNT from (
SELECT N.CONS_ID AS CUST_ID,
COUNT(DISTINCT(case when M.CO_ID is null then 1 else m.co_id end)) AS CUST_COUNT
FROM CTS_VIEW.CNSLD_CREDIT_SUM M
INNER JOIN CTS_VIEW.LEGACY_CODE_XREF N
ON M.EE_ID = N.EE_GBL_IND
WHERE M.PROD_DT >= DATE '2018-12-31'
GROUP BY N.CONS_ID
) a
where CUST_COUNT>1;
有没有更好的方法来编写这个查询,可以加快执行时间。 我们已经应用了 CBO 并在会话级别启用了矢量化。
【问题讨论】:
-
您的查询是指视图。这可能是性能问题的原因。
-
请提供 EXPLAIN 输出
标签: sql hive query-optimization hiveql