读书人

PLSQL批量Forall可操作性能提升详解

发布时间: 2012-12-24 10:43:14 作者: rapoo

PLSQL批量Forall操作性能提升详解
首先创建测试表

CHANGE #2 TYP:0 CLS:1 AFN:4 DBA:0x0100e283 OBJ:80824 SCN:0x0000.01050dc3 SEQ:3 OP:11.11 ENC:0 RBL:0KTB Redoop: 0x01  ver: 0x01  compat bit: 4 (post-11) padding: 1op: F  xid:  0x0002.00b.00000669    uba: 0x00c01762.00f1.0fKDO Op code: QMI row dependencies Disabled  xtype: XA flags: 0x00000000  bdba: 0x0100e283  hdba: 0x0100eeeaitli: 1  ispac: 0  maxfr: 4858tabn: 0 lock: 1 nrow: 255slot[0]: 0tl: 12 fb: --H-FL-- lb: 0x0  cc: 3col  0: [ 2]  c1 02col  1: [ 2]  c0 33col  2: [ 2]  c1 02slot[1]: 1tl: 11 fb: --H-FL-- lb: 0x0  cc: 3col  0: [ 2]  c1 03col  1: [ 2]  c1 02col  2: [ 1]  80slot[2]: 2tl: 13 fb: --H-FL-- lb: 0x0  cc: 3col  0: [ 2]  c1 04col  1: [ 3]  c1 02 33col  2: [ 2]  c1 02slot[3]: 3tl: 11 fb: --H-FL-- lb: 0x0  cc: 3col  0: [ 2]  c1 05col  1: [ 2]  c1 03col  2: [ 1]  80....slot[254]: 254tl: 15 fb: --H-FL-- lb: 0x0  cc: 3col  0: [ 3]  c2 03 38col  1: [ 4]  c2 02 1c 33col  2: [ 2]  c1 02


至此,验证结束。


(delete和insert都可以从forall上面得到巨大的性能提升。但是对于update来说opcode没有相关操作,提升应该不会那么明显)

参考资料:DBA的思想天空:感悟Oracle数据库本质 白鳝


Oracle PL\SQL实战 Adrian Billington , Martin Büchi 等,翻译者卢涛(总知道是谁吧)


Oracle PL/SQL最佳实践 Steven Feuerstein ,翻译者张平, 潘显俊

读书人网 >SQL Server

热点推荐