【问题标题】:Informix query slowInformix 查询慢
【发布时间】:2010-11-22 06:52:44
【问题描述】:

Unix 上的 IDS 9.04。

我有一个有 200000+ 行的表,每行有 200+ 列。 当我在这个表上执行一个查询(应该返回 470+ 行和 50 列)时,需要 100+ 秒才能返回,dbvisualizer 告诉我:

执行时间:4.87 秒 获取时间:97.56 秒

如果我将所有 470+ 行导出到一个文件中,文件大小将小于 800K

UPDATE STATISTICS 已运行,只选择了 50 列,不涉及 blob,如果我选择前 100 行,则只需 5 秒即可返回。

请帮忙!

【问题讨论】:

  • 哪个版本的 Informix,在哪个平台上?查询中的条件是什么?查询计划说什么?您是否运行过 UPDATE STATISTICS?列的宽度大约是多少——无论是选中的还是未选中的?是否涉及任何 blob?
  • UPDATE STATISTICS 已运行,仅选择了 50 列,不涉及 blob,如果我选择前 100 行,则只需 5 秒即可返回。

标签: performance informix


【解决方案1】:

如果 SELECT FIRST 100 只需要几秒钟,则表明 FIRST_ROWS 的查询计划与 ALL_ROWS 的查询计划截然不同。

尝试使用 SET EXPLAIN ON 运行查询;无论有无 FIRST n。它可能会给你一个线索。

【讨论】:

    【解决方案2】:

    用途:

    在 Avoid_execute 上设置解释;

    YOUR_QUERY

    开始解释;

    并查看您文件夹中的 sqexplain.out 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多