cibcib 发表于 2009-02-16 21:06

informix 9.4 ,update的问题

update 非常慢,同一个语句在一台远远不如这台服务器性能的机器上半分钟就执行出来,

而在这台高性能服务器连结果都没有,死在了里面,但是这个服务器执行其他语句没什么

问题,包括update时没有表连接的操作都非常快,就是执行连接其他表的时候出不来

请问是不是Informix的配置有问题?如何解决?

下面为语句实例:
update A set x=(select x from B
where A.z1=B.z1);

用于比较测试的另外一台机器性能不如服务器,涉及数据是一摸一样!

liaosnet 发表于 2009-02-16 22:57

先对库做一次
update statistics high;
如果可能的话..

wangbin_km 发表于 2009-02-17 06:24

仔细检查

可能是数据库中满足执行条件的数据量过大或者索引失效的缘故,可以使用update statistics作一下统计更新看看,不行select查询一下满足执行条件的记录有多少条。如果过大,超过onconfig中locks的配置就会锁表的,可以将条件分的在细一点或者使用存储过程来执行该update语句。

cibcib 发表于 2009-02-17 08:33

谢谢两位,我试试吧,关键是为什么同样的数据,同样的库,同样的sql语句,为什么在性能更低的

机器上会快很多

liaosnet 发表于 2009-02-17 09:35

原帖由 cibcib 于 2009-2-17 08:33 发表 http://bbs3.chinaunix.net/images/common/back.gif
谢谢两位,我试试吧,关键是为什么同样的数据,同样的库,同样的sql语句,为什么在性能更低的

机器上会快很多

没有经过调查,没法确定是同样的数据库。。。也许基本数据相同,但其性能可能相差很远。。

antyison 发表于 2009-02-17 11:40

可以试着调整预读参数RA_PAGES和 RA_THRESHOLD。
这两个参数适当加大,看看有没有效果。

另外检查一下你系统锁使用的情况,主要看死锁与锁等待。

diydos 发表于 2009-07-01 21:59

update 语句有问题。
没有匹配上的记录,则x被清空
页: [1]
查看完整版本: informix 9.4 ,update的问题