首页 > 数据库 > Oracle > [OWI] Buffer Busy Waits
P1: File#
P2: Block#
P3: 在 Oracle 10g 表示的是块类 (block class),在 Oracle 9i 表示的是 Reason Code。
|
数据块 (块类=1) |
用户应用程序的多个会话对同一块执行修改的时,这种块称一般称为热块 (Hot Block)。 解决热快的方法有以下几种。对用户进程进行修改: 通过对应用修改使得多个会话不会同时对一个块进行修改。 - PCTFREE 值得调整: 通过加大 PCTFREE 值创建对象时,在一个块里的行数自然会减少,从而减少对块的争用。 - 右倾索引的修改:索引键右倾斜会发生对索引叶节点的争论。最具代表性的是利用序列(sequence)值产生的键的值作为索引使用。这时可以利用反转索引 (Reverse Index)使键值分散,从而减少争用。 - 使用 FLM 时:使用 FLM(Free List Management) 的时候,在 Storage 属性中要赋予充分大的FREELISTS 属性值。FREELISTS的值是 1 的时候,因为会有多个进程对同一个块 Insert 而发生争用。FREELISTS值最好赋予成可以同时执行 Insert 进行的最大值 - 分区 (partitioning):通过段的分区可以任意的分散块。如果通过使用像哈希分区(Hash Partition)技术把聚集在一个块上的块用物理方法随机分散到任意空间上,以此可以减少争用。 |
|
段头 (块类=4) |
使用 FLM 的时候,在 Storage 属性中赋予充分大的 FREELISTS 属性值。如果是在 OPS 或 RAC 的环境下,需要给 FREELIST GROUPS 赋予跟实例个数一样的值。赋予了 FREELIST GROUPS 属性值后,与段头块使用不同的 FREELIST, 所以会减少对段头块的争用。 |
|
位图块 (块类= 8, 9, 10) |
使用 ASSM (Automatic Segment Space Management) 时可能会发生三个阶段的位图块的争用。位图块中发生的块争用无法利用 Oracle的调优而改善,而是要通过应用程序的修改要减少过多的并发的DML。 ASSM 堆大规模的同时 DML 相比较 FLM 是有一点的开销。但大部分情况下的这种开销是可以无视的。ASSM 相比 FLM 提供更多有点,特别对 RAC 提供最佳性能。 |
|
回滚头快 (块类=15+2*r) |
使用 AUM(Automatic Undo Management)的时候在回滚头的块不会经常出现发生争用。使用手动模式的回滚头段时,提供足量的回滚段数而减少回滚段的争用。 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31135309/viewspace-2092634/ ,如需转载,请注明出处,否则将追究法律责任。