Insert语句加/*+APPEND*/在循环中单条提交对系统的影响分析(二)

2015-01-27 22:36:58 · 作者: · 浏览: 43
------------

1 recursive calls

0 db block gets

20003 consistent gets

10000 physical reads

0 redo size

523 bytes sent via SQL*Net to client

523 bytes received via SQL*Net from client

2 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

1 rows processed

(3)查询性能结果比较:

table_name

consistent gets

physical reads

EMP

23

21

EMP_APPEND_TEST

20003

10024

consistent gets翻了869倍

physical reads翻了477倍

4、问题小结

Insert语句加/*+APPEND*/ hint在循环中单条提交,由于/*+APPEND */ hint是在高水位线以上插入的特性,导致每提交一次,就会取一个新的block存放,高水位就上推一个block,以及/*+APPEND */ hint会给表加6级排它锁的特导,导致必须在commit后才能插入新的数据,大量单条/*+APPEND */插入,使得表急剧增大,除对insert本身造成性能影响之外,对以后的select、update、delete更是造成更巨大的影响。

?