WEB开发网
开发学院数据库DB2 DB2 9.7 新特性 - 内联 LOB 的使用 阅读

DB2 9.7 新特性 - 内联 LOB 的使用

 2010-08-06 00:00:00 来源:WEB开发网   
核心提示: 如何确定一个大对象是否能够以内联的方式存储,是由表定义中新的 INLINE LENGTH 选项决定的,DB2 9.7 新特性 - 内联 LOB 的使用(2),如果表采用了内联 LOB 存储方式,那么在存储过程中,隐式启用的 LOB 不会过多的改变原先的存储方式,但是小于 LOB 描述符大小的大对

如何确定一个大对象是否能够以内联的方式存储,是由表定义中新的 INLINE LENGTH 选项决定的。如果表采用了内联 LOB 存储方式,那么在存储过程中,小于 INLINE LENGTH 设定值的大对象则直接存放于基本表空间中,大于 INLINE LENGTH 设定值而无法以直接插入方式存储的 LOB 值将单独存储在 LOB 存储器对象中。

INLINE LENGTH 的大小限制

INLINE LENGTH 选项是 DB2 9.7 中表定义的特殊属性,用以限定直接插入表行的存储方式可以插入的最大大对象的大小。INLINE LENGTH 的大小显然不会大于最大行大小。因为超出最大行大小的大对象是无法存储于基本表中,这一点是不能避免的。最大行的大小是与页大小相关的,如果是 32K 的数据页,那么对应的表中的行的最大大小是 32677 字节。但是,对于每个直接插入表行的大对象,需要 4 字节的额外开销,也就是说能够直接插入的最大 LOB 大小是 32673 字节。

INLINE LENGTH 的设置

在 DB2 9.7 中,启用内联 LOB 的方法就是在创建表或者修改表时定义 INLINE LENGTH 的值。启用内联 LOB 的方式有两种:

隐式启用:在新表被创建时所有的 LOB 列会启用此功能。如果是旧表被修改,添加的所有 LOB 列会启用此功能。如果是数据库升级,那么数据库中所有表的 LOB 列会隐式启用此功能。LOB 列隐式启用此功能时,INLINE LENGTH 的值也是默认定义的。前文中讲过 LOB 描述符的定义。参考图 1。INLINE LENGTH 的隐式设定值的大小就是原先 LOB 描述符的大小。这也很好理解。隐式启用的 LOB 不会过多的改变原先的存储方式。但是小于 LOB 描述符大小的大对象如果还存储于不同的表空间中显然是多浪费了相当于一个 LOB 描述符大小的空间。

显式启用:可以通过使用 CREATE TABLE 语句或 ALTER TABLE 语句来显式地定义 INLINE LENGTH 的大小。

上一页  1 2 3 4 5 6 7  下一页

Tags:DB 特性 内联

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接