Oracle SQL:减少commit次数以提高sql的性能
2006-01-29 20:44
267 查看
详细的分析http://grassbell.itpub.net/post/26/926
Oracle数据库中,当需要批量对数据库执行插入或者更新操作时候,减少commit的次数,从而减少transaction的数量,而在每个transaction中包含合适的数据处理量,可以提高sql的性能。测试sql如下:
SQL>
SQL> set timing on
SQL> set serveroutput on
SQL>
SQL> drop table testex;
Table dropped.
Elapsed: 00:00:00.05
SQL>
SQL> create table testex (
2 n number,
3 a varchar2(10),
4 b varchar2(100),
5 c number,
6 d date);
Table created.
Elapsed: 00:00:00.00
SQL>
SQL> begin
2 for i in 1..200000 loop
3 insert into testex values(i,'test','testtesttestteset',i,sysdate);
4 commit;
5 end loop;
6 commit;
7
8 end;
9 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:24.06
SQL>
SQL> delete from testex;
200000 rows deleted.
Elapsed: 00:00:14.09
SQL> commit;
Commit complete.
Elapsed: 00:00:00.00
SQL>
SQL> begin
2 for i in 1..200000 loop
3 insert into testex values(i,'test','testtesttestteset',i,sysdate);
4 end loop;
5 commit;
6
7 end;
8 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:17.09
SQL>
SQL> spool off
Oracle数据库中,当需要批量对数据库执行插入或者更新操作时候,减少commit的次数,从而减少transaction的数量,而在每个transaction中包含合适的数据处理量,可以提高sql的性能。测试sql如下:
SQL>
SQL> set timing on
SQL> set serveroutput on
SQL>
SQL> drop table testex;
Table dropped.
Elapsed: 00:00:00.05
SQL>
SQL> create table testex (
2 n number,
3 a varchar2(10),
4 b varchar2(100),
5 c number,
6 d date);
Table created.
Elapsed: 00:00:00.00
SQL>
SQL> begin
2 for i in 1..200000 loop
3 insert into testex values(i,'test','testtesttestteset',i,sysdate);
4 commit;
5 end loop;
6 commit;
7
8 end;
9 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:24.06
SQL>
SQL> delete from testex;
200000 rows deleted.
Elapsed: 00:00:14.09
SQL> commit;
Commit complete.
Elapsed: 00:00:00.00
SQL>
SQL> begin
2 for i in 1..200000 loop
3 insert into testex values(i,'test','testtesttestteset',i,sysdate);
4 end loop;
5 commit;
6
7 end;
8 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:17.09
SQL>
SQL> spool off
相关文章推荐
- 减少oracle sql回表次数 提高SQL查询性能
- 减少oracle sql回表次数 提高SQL查询性能
- 减少oracle sql回表次数 提高SQL查询性能
- 减少oracle sql回表次数 提高SQL查询性能
- 减少oracle sql回表次数 提高SQL查询性能
- 减少oracle sql回表次数 提高SQL查询性能
- 减少oracle sql回表次数 提高SQL查询性能
- 设计文件系统时应尽量减少访问磁盘的次数,以提高文件系统的性能.下列各种措施中,哪些可以减少磁盘服务时间?
- 怎样写SQL语句可以提高数据库的性能
- SQL中使用WITH AS提高性能
- Oracle 的sql优化提高性能
- 在程序开发中怎样写SQL语句可以提高数据库的性能
- [收藏]五种提高SQL性能的方法
- 利用PL/SQL的nested table和bulk collect into方法提高性能
- 5种提高SQL性能的方法
- 走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
- 五种提高 SQL 性能的方法
- [MSDN]五种提高 SQL 性能的方法
- 五种提高 SQL 性能的方法
- 使用SQLBULKCOPY提高导入数据的性能