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更是造成更巨大的影响。
?