D2002 发表于 2013-03-06 09:42

对11.70和11.50简单测试一下,发现问题

本帖最后由 D2002 于 2013-03-06 10:06 编辑

1. 背景资料:

有一个Table:

create table cust_book (
        seq_no   CHAR(10) NOT NULL,
        cust_noCHAR(12) NOT NULL,
        currency CHAR(3) NOT NULL,
        amount   DECIAML(12,2) NOT NULL,
      ......
        tr_date   DATE NOT NULL,
        tr_status CHAR(1)
);
create custbook_idx01 on cust_book(tr_date, seq_no);
此表中有150万条记录。在A和B机中,同样建此表。


A机配置,RedHat Linux Server虚拟机,安装64位Linux系统(核心2.6.18-194.e15), Linux系统显示单个CPU。
安装的IDS版本:IBM Informix Dynamic Server Version 11.50.FC9 -- On-Line -- Up 1 days 00:10:41 -- 329552 Kbytes

B机配置(双CPU,每个CPU有6核12线程,8GB内存),RedHat Linux Server,安装32位Linux系统(核心2.6.18-308.e15), Linux系统显示24个CPU。
安装的IDS版本:IBM Informix Dynamic Server Version 11.70.UC3 -- On-Line -- Up 4 days 15:18:11 -- 1824392 Kbytes

在配置IDS 11.70时,将CPU的配置是这样的:
VPCLASS cpu,num=16,noage
......
VPCLASS aio,num=2
......
VPCLASS jvp,num=2
......
无论cpu还是内存,配置上B机要高很多。

2. Unload 评估

运行shell文件:

date>cust.log
echo "unload to 'cust.unl' select * from cust_book;" >>cust.log
dbaccess - - <<!
DATABASEtestdb;
unload to 'cust.unl' select * from cust_book;
!
date>>cust.log

A机:用时105秒
   Tue Mar5 08:44:52 CST 2013
    unload to 'cust01.unl' select * from cust_book;
    Tue Mar5 08:46:37 CST 2013
B机:用时92秒
   Tue Mar5 09:18:40 CST 2013
    unload to 'cust01.unl' select * from cust_book;
    Tue Mar5 09:20:12 CST 2013

在A机器上运行比B机器慢,符合预期。

3. 查询评估

用dbaccess运行:

select * from cust_book order by tr_date, seq_no;

在A机(11.50.FC9)上运行, 不用等待,马上出现第一条记录。
在B机(11.70.UC3)上运行, 等待2分钟,还没有出现第一条记录,就强行中断查询。


不明白这问题所在?难道是11.70.UC3的bug?

yunzhongyue 发表于 2013-03-06 13:37

先做个高优然后再试下!

liaosnet 发表于 2013-03-06 16:50

1,统计更新。。
2,数据缓存~

D2002 发表于 2013-03-07 12:26

回复 2# yunzhongyue

同等条件下,简单测试,都没设置优先级
   

D2002 发表于 2013-03-07 12:29

liaosnet 发表于 2013-03-06 16:50 static/image/common/back.gif
1,统计更新。。
2,数据缓存~

做了UPDATE STATISTICS后,再进行同样的测试,现在正在测试。

同样的查询语句,等了7分钟还多,查询的第一条结果还没出来。

D2002 发表于 2013-03-07 12:38

本帖最后由 D2002 于 2013-03-07 12:43 编辑

在B机器上,重新安装了Redhat Enterprise 6.4(x86_64), 又安装了IDS 11.70.FC3(64位版本):
IBM Informix Dynamic Server Version 11.70.FC3 -- On-Line -- Up 02:03:23 -- 1511728 Kbytes

Unload 测试结果: 用时51秒 (64位操作系统+64位IDS 11.70, 确实要快过32位操作系统+32位IDS 11.70)
   Tue Mar7 11:14:57 CST 2013
    unload to 'cust01.unl' select * from cust_book;
    Tue Mar7 11:15:49 CST 2013
接下来先做:
UPDATE STATISTICS

然后做:

select * from cust_book order by tr_date, seq_no;

等待大约10分钟后,才出现第一条记录。
同意问题出现在64位版本的11.70.FC3上。

通过这些简单测试,本人觉得11.70.xC3在Index上存在问题或BUG。

希望 liaosnet 能提供11.70.xC5 或 xC6 版本测试一下。

D2002 发表于 2013-03-07 15:19

本帖最后由 D2002 于 2013-03-07 15:22 编辑

为了测试11.70最新版本,特意下载了11.70.xC6开发版。

在B机器(RH ES 6.4 x86_64)上,又安装一个开发版11.70.FC6DB,开发版只支持一个CPU。
IBM Informix Dynamic Server Version 11.70.FC6DB -- On-Line -- Up 00:44:23 -- 815764 Kbytes

1. Unload 性能: 用时44秒(此次测试最快的)
   Tue Mar7 14:10:59 CST 2013
    unload to 'cust01.unl' select * from cust_book;
    Tue Mar7 14:11:43 CST 2013
2. select ... order by ...性能:

select * from cust_book order by tr_date, seq_no;

与11.70.FC3完全不同的,感觉不到等待时间,第一条查询记录马上出来了!

看来11.70.FC3在Index上确实存在问题!



yunzhongyue 发表于 2013-03-07 15:44

回复 4# D2002

高优的意思是高级别的统计更新!
   

D2002 发表于 2013-03-07 15:54

yunzhongyue 发表于 2013-03-07 15:44 static/image/common/back.gif
回复 4# D2002

高优的意思是高级别的统计更新!

最新的11.70.FC6D开发版测试结果,不用做任何其他处理就没有11.70.xC3上出现的问题了。
可见11.70.xC3在Index上存在BUG。

3sane 发表于 2013-03-08 12:01

本帖最后由 3sane 于 2013-03-08 12:06 编辑

回复 9# D2002


好久没玩INFORMIX了,如果你用11.10或11.20估计你的工作就是打电话了。:mrgreen:
看你这么说,我也躲开11.70xC3 了。个人猜想,这个版本是不是等输出缓存满了才输出结果。
我的建议是:
1、用update statistics high
2、比较下2台机器上表空间所在硬盘的性能

默认的参数都比较保守,包括系统和数据库。
页: [1] 2
查看完整版本: 对11.70和11.50简单测试一下,发现问题