表性能的注意事项
一些性能问题与未分段表和表分段相关联。
问题包括:
将表放置于磁盘以增大吞吐量并减少争用
对表、Blob 页、智能大对象空间和扩展数据块的空间估计
对表所作的添加或删除历史数据的更改
使数据库反向规范化以减少开销
将表放在磁盘中
数据库服务器所支持的表驻留在一个或多个磁盘的一个或多个部分中。 在通过将表分配到数据库空间来创建表时,控制表在磁盘上的放置。
估计表大小
可以计算表的近似大小(在磁盘页面中)。
管理表空间 tblspace 的第一个和下一个扩展数据块的大小
表空间
tblspace
是一些页的集合,这些页描述数据库空间中的所有表空间的位置和结构。每个数据库空间都有一个表空间
tblspace
。当您创建数据库空间时,可使用 TBLTBLFIRST 和 TBLTBLNEXT 配置参数来为根数据库空间中的表空间
tblspace
指定第一个和下一个扩展数据块大小。
管理智能大对象空间
智能大对象空间
是由存储智能大对象的一个或多个块组成的逻辑存储单元。可以估计智能大对象所需的存储量,改善元数据 I/O,监视智能大对象空间以及更改存储特征。
管理扩展数据块
向表添加行时,数据库服务器使用称为
扩展数据块
的单位来分配磁盘空间。每个扩展数据块是一批 来自数据库空间的,在物理上相邻接的页。 即使数据库空间包含多于一个块,每个扩展数据块也会完全分配在单个的块中,从而保证邻接。
将多个表分段存储在单个数据库空间
您可以将相同的表或索引的多个分段存储在单个数据库空间中,从而减少分段表所需的数据库空间的总数。
必须为您要在相同数据库空间中存储的每个分段指定一个名称。
在单个数据库空间中存储多个表或索引分段可简化数据库空间的管理。
显示表和索引分区的列表
使用
onstat -g opn
选项显示系统中当前打开的表和索引分区的列表(按线程标识排列)。
更改表以提高性能
可以通过删除索引、连接或拆离分段和变更表定义来更改表以改善性能。 还可以通过在 OLTP 数据库中卸载和装入表来为决策支持应用程序创建数据库。
对数据模型进行反向规范化以提高性能
可能需要取消数据模型规格化以减少开销并优化性能。
减少具有可变长度行的表中的磁盘空间
如果将 MAX_FILL_DATA_PAGES 配置参数设为
1
,数据库服务器将可向具有可变长度行的表中每个页面插入更多行。允许每页具有更多可变长度的行既有其优点也有缺点。
通过压缩表和分段来减少磁盘空间
可以通过压缩和取消压缩表和表分段中的数据、整合表或分段中的可用空间并将此可用空间返还给数据库空间来减少磁盘空间使用量。对于具有大量 I/O 活动的应用程序以及对于减少磁盘空间使用量很关键的应用程序,压缩是很有利的。 但是,如果应用程序运行时具有很高的缓冲区高速缓存命中率而高性能比空间使用量更重要,那么可能不希望使用压缩功能,因为压缩可能会稍微降低性能。