R
redchild
Unregistered / Unconfirmed
GUEST, unregistred user!
Interbase 千万级数据量性能测试报告
测试环境:AMD DURON 1G CPU
WD 5400RPM 40G
SIS735
384MB SDRAM
Windows 2000 Professional on NTFS
Interbase 6.5 local(即联接字用的是D:/TRY.GDB格式)
Win9x环境下请不要试,可能造成系统崩溃!
新建数据文件 TRY.GDB
page size 4k
dialect 3
sweep interval 20000
forced writed disabled
建立测试表
CREATE TABLE T1 (
ID INTEGER NOT NULL UNIQUE
)
建立存储过程
CREATE PROCEDURE PROD1 (
MAXID INTEGER
) RETURNS (
AAA INTEGER
) AS
begin
aaa=1;
while (aaa<maxid) do
begin
insert into t1(id) valuesaaa);
aaa=aaa+1;
end
suspend;
end
插入一千万条记录
SELECT * FROM PROD1(10000001)
用时约12分钟(没有准确测试)
TRY.GDB 大小: 568MB
select max(id) from t1
用时10多分钟
查看系统信息中可用物理内存为6xxxKB(注意:在任务管理器中可查看物理内存的可用数)
重启Interbase 后
查看系统信息中可用物理内存为30xxxxKB
select * from t1 where id=9999999
感觉不到迁时
删除t1的主索引
select * from t1 where id=9999999
用时与前面的select max(id) from t1基本相同
由此可见max()函数本身存在缺陷,可能没有使用索引并可能存在内存泄露,大数据量环境下对系统性能造成致命伤害,
不知哪位高手有可解决的方案(指用Interbase)
测试环境:AMD DURON 1G CPU
WD 5400RPM 40G
SIS735
384MB SDRAM
Windows 2000 Professional on NTFS
Interbase 6.5 local(即联接字用的是D:/TRY.GDB格式)
Win9x环境下请不要试,可能造成系统崩溃!
新建数据文件 TRY.GDB
page size 4k
dialect 3
sweep interval 20000
forced writed disabled
建立测试表
CREATE TABLE T1 (
ID INTEGER NOT NULL UNIQUE
)
建立存储过程
CREATE PROCEDURE PROD1 (
MAXID INTEGER
) RETURNS (
AAA INTEGER
) AS
begin
aaa=1;
while (aaa<maxid) do
begin
insert into t1(id) valuesaaa);
aaa=aaa+1;
end
suspend;
end
插入一千万条记录
SELECT * FROM PROD1(10000001)
用时约12分钟(没有准确测试)
TRY.GDB 大小: 568MB
select max(id) from t1
用时10多分钟
查看系统信息中可用物理内存为6xxxKB(注意:在任务管理器中可查看物理内存的可用数)
重启Interbase 后
查看系统信息中可用物理内存为30xxxxKB
select * from t1 where id=9999999
感觉不到迁时
删除t1的主索引
select * from t1 where id=9999999
用时与前面的select max(id) from t1基本相同
由此可见max()函数本身存在缺陷,可能没有使用索引并可能存在内存泄露,大数据量环境下对系统性能造成致命伤害,
不知哪位高手有可解决的方案(指用Interbase)