如何在Informix数据库中加快查询的速度

来源:岁月联盟 编辑:zhuzhu 时间:2007-09-18

如何加快查询的速度?

:为什么在一个有30000条记录并且建立有索引的表进行操作很慢,怎么办?

:30000条记录并不是太多,你感觉有些慢可能是记录数太多的缘故,原因可能是每条记录太长,或者你的机器的性能十分低,下面的一些方法可能会对性能有所帮助:

1.更新统计信息(update satistics on tablename)

这一点很容易做到,并且有可能会带来性能的提高。

2.删除

然后再重新创建索引。这样作能够增加索引的连续性。但是要求是DBA或者有创建索引的权限。

3.ALTER INDEX idxname TO CLUSTER

这样作的目的是重新创建表并且通过索引来重新排列记录。结果是强制使记录在逻辑上连续,并且提高物理上的连续性。这样作的代价最大,但是效果最好。但是,一个表中只能有一个cluster index,并且,重新排列记录可能会强迫其他的查询使用其他的索引。作这种工作,你必须要为DBA或者有alter table 的权限。并且请注意,在你运行cluster index的时候,你必须要有足够的空间,因为在为一个表创建cluster index的时候,会拷贝表中所有的记录到一个临时表中,在临时表中进行排序操作,然后会删除原来的表,然后将临时表的名字改为原始表的名字。因此,如果这个表中的数据变化很大,如经常要进行大量的插入/删除的操作,这样作的好处就体现不出来。

(:卢兆林)