首页 理论教育数据库存储空间管理的重要性

数据库存储空间管理的重要性

【摘要】:生成对象时会定义管理数据存储空间的选项,如果未能准确地预测出数据增加量,则会频繁地出现区段,对大容量数据库系统的性能产生不良影响。但可以根据需要设置多个freelist,多个freelist的集称为“freelist group”,需要freelist group时可以按管理员的定义进行多个设置。此外,当大多数用户通过多个实例同时对特定表请求空闲块时,段头会出现较大的争用,导致性能下降,因此定义与并发用户数相同的freelist以及与实例数相同的freelist group更为有效。

生成对象时会定义管理数据存储空间的选项(initial、next、pctincrease、freelists、freelist groups等),如果未能准确地预测出数据增加量,则会频繁地出现区段,对大容量数据库系统的性能产生不良影响。

频繁出现区段会增加与其他对象的区段请求在同一时段集中出现的可能性,会导致DB运行时性能大幅下降,甚至会出现排队现象(例如Enqueuer lock争用),因此需要策略性地使用存储选项。如果在操作过程中出现区段或区域分割加速,在重新整理操作前应该首先适当地变更 Next的大小。

此外,段头会显示当用户请求时该段确定区段或区域中可分配的空闲块列表,该列表即为“freelist”,基本上表和索引各有一个列表。如果需要空闲块的用户操作要求(INSERT或长度增加的UPDATE要求)同时发生时,Oracle只能按顺序分配空闲块,因此会引起freelist争用,从而影响处理性能。但可以根据需要设置多个freelist,多个freelist的集称为“freelist group”,需要freelist group时可以按管理员的定义进行多个设置。

此外,当大多数用户通过多个实例同时对特定表请求空闲块时,段头会出现较大的争用,导致性能下降,因此定义与并发用户数相同的freelist以及与实例数相同的freelist group更为有效。(www.chuimin.cn)

总体来说,存储空间利用不足和产生低效率区域分割的同时引发事务处理时的资源争用负载,都是导致性能下降的原因,因此必须谨记,基于sizing概念的策略性存储空间的定义和管理是非常重要的。

以下分析事例中,比起表空间内的最大连续空间,next区段的设置是更大对象存储的关键。如果发现此类对象,应立即重新整理该对象,若无法立即执行,重新整理操作前应适当地调整next的大小临时用于操作。