DB2 V10.1 for Linux, UNIX, and Windows

存储器组和表空间介质属性

自动存储器表空间从该表空间缺省情况下使用的存储器组继承介质属性值、设备读速率和数据标记属性。

使用 CREATE STOGROUP 语句创建存储器组时,可指定以下存储器组属性:
OVERHEAD
此属性指定 I/O 控制器时间、磁盘搜索和等待时间(以毫秒计)。
DEVICE READ RATE
此属性指定设备的读取传输速率(以兆字节/秒计)规范。此值用于确定查询优化期间的 I/O 成本。如果此值对于所有存储路径不同,那么该数字应是属于该存储器组的所有存储路径的平均值。
DATA TAG
此属性指定特定存储器组中的数据的标记,WLM 可使用此标记来确定数据库活动的处理优先级。
存储器组属性的缺省值如下所示:
表 1. 存储器组属性的缺省设置
属性 缺省设置
DATA TAG NONE
DEVICE READ RATE 100 MB/sec
OVERHEAD 6.725 ms

创建自动存储器表空间时,可指定用于标识该表空间中包含的数据的标记。如果该表空间与存储器组相关联,那么表空间的数据标记属性将覆盖可能对该存储器组设置的任何数据标记属性。如果用户未对表空间指定数据标记属性,并且该表空间包含在存储器组中,那么该表空间将从该存储器组继承数据标记值。可对除目录表空间以外的任何常规表空间或大型表空间设置数据标记属性 (SQL0109N)。不能对临时表空间设置数据标记属性,否则将返回 SQL0109N 消息错误。

自动存储器表空间从它使用的存储器组继承开销和传输速率属性。如果表空间从它使用的存储器组继承传输速率属性,那么该存储器组的设备读速率将从“毫秒/所读页”进行转换(考虑表空间的页大小设置),如下所示:
TRANSFERRATE = ( 1 / DEVICE READ RATE ) * 1000 / 1024000 * PAGESIZE
自动存储器表空间和非自动表空间的页大小设置具有对应的缺省 TRANSFERRATE 值:
表 2. 缺省 TRANSFERRATE 值
PAGESIZE TRANSFERRATE
4 KB 0.04 毫秒/所读页
8 KB 0.08 毫秒/所读页
16 KB 0.16 毫秒/所读页
32 KB 0.32 毫秒/所读页

自动存储器表空间的数据标记、设备读速率和开销介质属性可更改为从其关联存储器组动态继承值。为动态更新介质属性,请对 CREATE TABLESPACE 或 ALTER TABLESPACE 语句指定 INHERIT 选项。

表空间从存储器组继承属性值时,SYSCAT.TABLESPACES 目录表视图报告该属性的值为 -1。要查看开销、传输率和数据标记属性在运行时的实际值,可使用下列查询:
 select tbspace,
  cast(case when a.datatag = -1 then b.datatag else a.datatag end
as smallint) eff_datatag,
	 eff_datatag,
  cast(case when a.overhead = -1 then b.overhead else a.overhead
end as double) eff_overhead,
	 eff_overhead,
  cast(case when a.transferrate = -1 then (1 / b.devicereadrate) / 1024 * a.pagesize
else a.transferrate end as double) eff_transferrate
		eff_transferrate
 			from syscat.tablespaces a left outer join syscat.stogroups b on a.sgid = b.sgid

如果升级至 V10.1,那么现有表空间将保留其开销和传输速率设置,并且该存储器组的开销和设备读速率属性设为 undefined(未定义)。存储器组中新创建的表空间(设备读速率设为未定义)使用最初创建 DB2® 数据库时定义的数据库缺省值。如果存储器组的介质设置具有有效值,那么新创建的表空间将继承这些值。可使用 ALTER STOGROUP 语句来设置该存储器组的介质属性。对于非自动表空间,介质属性将保留。