Informix 查询慢
Posted
技术标签:
【中文标题】Informix 查询慢【英文标题】:Informix query slow 【发布时间】: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 秒即可返回。 【参考方案1】:如果 SELECT FIRST 100 只需要几秒钟,则表明 FIRST_ROWS 的查询计划与 ALL_ROWS 的查询计划截然不同。
尝试使用 SET EXPLAIN ON 运行查询;无论有无 FIRST n。它可能会给你一个线索。
【讨论】:
【参考方案2】:用途:
在 Avoid_execute 上设置解释;
YOUR_QUERY
开始解释;
并查看您文件夹中的 sqexplain.out 文件。
【讨论】:
以上是关于Informix 查询慢的主要内容,如果未能解决你的问题,请参考以下文章