CREATE TABLE
testlinkin
(
a INTEGER,
b INTEGER,
PRIMARY KEY (a)
);
还有个存储过程
CREATE PROCEDURE informix.test3(count int)
define i int;
define zl01 int;
define zl02 int;
let i=0;
let zl01=10001;
let zl02=10002;
while i<count
insert into testlinkin values(zl01,zl02);
let i=i+1;
let zl01=zl01+1;
let zl02=zl02+1;
end while
end procedure;
执行execute procedure test3(50000)
同时不断的select count(*) from testlinkin;
结果到后面插入到26640条的时候,就停下来,不继续增加了。
这时候onstat 查看数据库的状态是正常的,但是 onmode -z PID没有反应 。
有谁知道为什么吗?
$onstat -g sql
IBM Informix Dynamic Server Version 11.50.UC9 -- On-Line -- Up 00:13:28 -- 144148 Kbytes
Sess SQL Current Iso Lock SQLISAM F.E.
Id Stmt type Database Lvl Mode ERRERRVersExplain
33 SELECT user CRNot Wait 0 0 9.28Off
32 INSERT user CRNot Wait 0 0 9.24Off
31 - user CRNot Wait 0 0 9.24Off
30 CREATE TEMP user CRNot Wait 0 0 9.28Off
21 sysadmin DRWait 5 0 0 - Off
20 sysadmin DRWait 5 0 0 - Off
19 UPDATE sysadmin DRWait 5 0 0 - Off
4 - user CRNot Wait 0 0 9.28Off 杯具,我发现onmode -ky也没反应了。0 0
informix这么不经折腾嘛?还是我搞错什么了? 回复 11# Oo烟花火
看下日志有什么提示?表空间够不够? 问题解决了:
在重新建了一下这张表的索引后,就不会出现
:Could not position within a table
的错误了。
有没有人能试着帮忙分析下什么情况下会让索引出现这种问题?
页:
1
[2]