当前位置: 首页 > 数据库 > db2教程 > 正文

DB2 for z/OS中LOB(Large Object)对象使用介绍

时间:2014-12-17 IBM 杨学刚

match为了存储一些复杂的文件、图像和视频,DB2 for OS/390 Version 6 引入了LOB(Large Object)技术,用于支持小于2G的单个LOB对象,同时允许单一LOB列共存储65536 TB的数据。DB2支持以下三种类型的LOB对象:
BLOB(BInary Large Object):二进制的LOB对象,用于存储图像、声音以及视频;

CLOB(Character Large Object): 字符LOB对象,用于存储字符数据;

DBCLOB(Double Byte Character Large Object):用于存储基于大 DBCS(双字节字符集)字符的数据。

本文通过实例介绍如何创建一个包含BLOB对象的DB2表,以及LOB表的备份、恢复等维护操作,所有例子都是基于DB2 for z/OS Version 10.

假设我们需要在数据库TEST中创建一张表用于存储图像,表名字是PICTURE,该表包含两列:NAME和DATA,其中NAME是图像名字,而DATA是图像的数据,DATA需要使用BLOB对象来存储。

一、创建表空间

CREATE TABLESPACE PICTURE_DS

IN TEST USING STOGROUP SYSDEFLT

 PRIQTY 4000

 SECQTY 2000

NUMPARTS 31

SEGSIZE 64

LOCKSIZE ANY

FREEPAGE 10

BUFFERPOOL BP0

CLOSE YES;

CREATE LOB TABLESPACE DATA_DS

IN TEST USING STOGROUP SYSDEFLT

PRIQTY 4000

SECQTY 2000

LOCKSIZE LOB

BUFFERPOOL BP0

CLOSE YES;

使用BLOB对象需要创建两个表空间:一个是用于存储表PICTURE的base表空间,另外一个是存储LOB对象的auxiliary表空间,在创建LOB对象的表空间时需要使用CREATE LOB TABLESPACE。DB2同时也支持inline LOB的方式,LOB对象和表数据会存储在同一个表空间中,本文暂不讨论inline LOB。

二、创建表和索引

CREATE TABLE PICTURE

(

NAME       CHAR(100)      NOT NULL,

DATA        BLOB(6M)               NOT NULL,

PRIMARY KEY(NAME)

)

IN PICTURE_DS;

CREATE UNIQUE INDEX

IX_PICTURE

ON PICTURE(NAME)

USING STOGROUP SYSDEFLT

PRIQTY 1000

SECQTY 200;

CREATE AUX TABLE AUX_DATA

IN TEST.DATA_DS

STORES PICTURE

COLUMN DATA;

CREATE UNIQUE INDEX IX_DATA

ON  AUX_DATA;

在创建表PICTURE,指定DATA列格式为BLOB,6M表明图像最大为6M。为了查询效率,我们还为AUX_DATA表创建了索引。

更多精彩内容:http://www.bianceng.cn/database/db2/