【问题标题】:Without changing memory limit and without affecting query performance. Is there anyway to improve Impala memory issue?不改变内存限制,不影响查询性能。有什么办法可以改善 Impala 内存问题吗?
【发布时间】:2022-01-22 14:46:33
【问题描述】:

我想知道-

  1. 不影响 SQL 查询性能
  2. 不降低内存限制 有什么办法可以改善 impala 内存错误问题?

我得到了一些建议,比如在我的 SQL 查询中更改我的连接语句

【问题讨论】:

    标签: sql memory hive impala memory-limit


    【解决方案1】:

    Impala 使用内存中分析引擎,因此在各个方面都尽可能地保持最小化。

    1. 过滤器 - 尽可能多地使用过滤器。如果可以,请使用子查询并在子查询中进行过滤。
    2. 联接 - 内存问题的主要原因 - 您需要智能地使用联接。根据经验法则,在内部连接的情况下 - 首先使用驱动表,然后是最小表,然后是下一个小表,依此类推。对于左连接,您可以使用相同的拇指规则。因此,根据它们的大小(列和计数)移动表格。 此外,尽可能多地使用过滤器。
    3. 操作,如 distinctregexpIN、连接条件或过滤器中的 concat/function 可能会减慢速度。请确保它们是绝对必要的,您无法避免它们。
    4. 选择语句、子查询中的列数 - 尽量减少。
    5. 选择语句、子查询中的操作 - 尽量减少。
    6. 分区 - 保持优化,以便您获得最佳性能。更多的分区会减慢 INSERT,更少的分区会减慢 SELECT。
    7. 统计数据 - 创建每日计划以收集所有表和分区的统计数据,以加快速度。
    8. 解释计划 - 在查询运行时获取解释计划。查询执行给你一个独特的查询链接。您将在 SQL 的操作中看到很多见解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 2017-01-10
      • 2015-06-25
      • 1970-01-01
      相关资源
      最近更新 更多