Array Fetch对性能的影响?

[复制链接]
查看11 | 回复2 | 2007-1-24 14:35:02 | 显示全部楼层 |阅读模式
使用Array Fetch对于fetch的性能有很大的影响, 下面是我测试的结果,Array的大小并不是越大越好,在sqlplus中默认是15,在oracle的jdbc中默认是10, 在我的程序中一般是设为50或100的

SQL> set fetchsize 1
SQL> unload select * from testobj >> a.txt;
Query executed in 00:00:00.030
100000 rows writed in 00:00:10.983
200000 rows writed in 00:00:22.046
300000 rows writed in 00:00:34.234
400000 rows writed in 00:00:49.132
500000 rows writed in 00:01:01.039
600000 rows writed in 00:01:14.863
700000 rows writed in 00:01:28.587
800000 rows writed in 00:01:41.588
900000 rows writed in 00:01:55.302
938496 rows writed in 00:02:01.205
Done, total:938496 , avg:7743 rows/s.
SQL> set fetchsize 10
SQL> unload select * from testobj >> a.txt;
Query executed in 00:00:00.030
100000 rows writed in 00:00:04.177
200000 rows writed in 00:00:08.233
300000 rows writed in 00:00:12.670
400000 rows writed in 00:00:16.967
500000 rows writed in 00:00:21.133
600000 rows writed in 00:00:25.350
700000 rows writed in 00:00:29.616
800000 rows writed in 00:00:33.401
900000 rows writed in 00:00:37.166
938496 rows writed in 00:00:38.622
Done, total:938496 , avg:24299 rows/s.
SQL> set fetchsize 20
SQL> unload select * from testobj >> a.txt;
Query executed in 00:00:00.020
100000 rows writed in 00:00:03.654
200000 rows writed in 00:00:07.409
300000 rows writed in 00:00:11.073
400000 rows writed in 00:00:14.858
500000 rows writed in 00:00:18.623
600000 rows writed in 00:00:22.347
700000 rows writed in 00:00:26.052
800000 rows writed in 00:00:29.415
900000 rows writed in 00:00:32.818
938496 rows writed in 00:00:34.164
Done, total:938496 , avg:27470 rows/s.
SQL> set fetchsize 50
SQL> unload select * from testobj >> a.txt;
Query executed in 00:00:00.030
100000 rows writed in 00:00:03.483
200000 rows writed in 00:00:07.128
300000 rows writed in 00:00:11.344
400000 rows writed in 00:00:15.049
500000 rows writed in 00:00:18.653
600000 rows writed in 00:00:22.849
700000 rows writed in 00:00:26.905
800000 rows writed in 00:00:30.258
900000 rows writed in 00:00:33.612
938496 rows writed in 00:00:34.927
Done, total:938496 , avg:26870 rows/s.
SQL>
[/FONT]

回复

使用道具 举报

千问 | 2007-1-24 14:35:02 | 显示全部楼层
搂主不是在sqlplus中测试的吗?
回复

使用道具 举报

千问 | 2007-1-24 14:35:02 | 显示全部楼层
这是正常的。
使用OCI的批量提交也并不是越多越好,太大的话会过多的占用系统资源,导致性能的下降。具体的值应该和所在系统的环境有关,硬件和软件不同,这个最优值也是变化的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行