2010-11-22 206 views
1

unix上的IDS 9.04。Informix查询速度慢

我得到了一张有200000+行的表,每行有200列。 当我执行一个查询(应该返回470+行50列)在这个表上,它需要100+秒返回,并DBVisualizer中告诉我:

eexecution时间:4.87秒 提取时间:97.56秒

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

UPDATE STATISTICS已经只有拼命地跑,只选择了50列,无斑点参与,如果我选择第100行,它需要5秒才能返回。

Plz help!

+0

哪个版本的Informix在哪个平台上?查询中的条件是什么?查询计划说什么?你运行UPDATE STATISTICS吗?粗略地说,列有多宽 - 选择和未选择?有没有涉及的斑点? – 2010-11-22 07:05:25

+0

unix上的IDS 9.04。 – idiotgenius 2010-11-22 07:31:42

+0

UPDATE STATISTICS已经运行,只选择了50列,没有涉及斑点,如果我选择了第100行,它只需要5秒即可返回。 – idiotgenius 2010-11-22 07:33:18

回答

0

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

尝试使用SET EXPLAIN ON运行查询;无论是否有FIRST n。它可能会让你知道发生了什么。

0

使用方法:

set explain on avoid_execute;

YOUR_QUERY

组解释关闭;

并检查文件夹中的sqexplain.out文件。