甲骨文lob简单介绍

  

<强>何为LOB ?

LOB为oracle数据库的一个大对象数据类型,可以存储超过4000字节的字符串,二进制数据,OS文件等大对象信息。最大可存储的容量根甲骨文的版本和oracle块大小有关。

<>强有那几种可供选择的LOB类型?

目前甲骨文提供了CLOB, NCLOB, BLOB, BFILE共四种LOB类型,CLOB, NLOB为大字符串类型,NLOB为多语言集字符类型、类似于NVARCHAR类型,用他们代替以前的长类型;博客为大二进制类型,用来代替以前的长原始类型;BFILE可存储操作系统中的各种文件。

<>强何为内部LOB,外部LOB ?

内部LOB指的是LOB数据存储在甲骨文的表空间中,CLOB, NCLOB,博客都是内部LOB;而外部LOB指的是LOB数据存储在数据库外部的操作系统文件中,BFIEL是唯一的外部LOBs.BFILE提供了让我们可以在SQL中访问外部文件的方法。

<>强LOB到底能存多大的数据呢?

<前>   BFILE : Maximum 大小:4,GB , Maximum  size  of  a  file 名称:,255,characters , Maximum  size  of  a  directory 名称:30   ,,,,,,,,,characters  Maximum  number  of  open  BFILEs:,, Maximum  number  of  BFILEs  is  limited  by 从而value  of    ,,,,,,,,,SESSION_MAX_OPEN_FILES  initialization 参数,,which  is  itself  limited  by 从而maximum  number  of  open    ,,,,,,,,,files 从而operating  system  will 允许。   大小:BLOB: Maximum  (4, GB 作用;1),*,DB_BLOCK_SIZE  initialization  parameter  (8, TB 用128年,结核病),,,number  of  LOB 列   ,,,,,,,,per  table  is  limited  only  by 从而maximum  number  of  columns  per  table  (that 是,10001)。   大小:CLOB: Maximum  (4), GB 作用;1),*,DB_BLOCK_SIZE  initialization  parameter  (8, TB 用128年,结核病),从而number  of  LOB 列   ,,,,,,,,per  table  is  limited  onlyby 从而maximum  number  of  columns  per  table  (that 是,10001)。   NCLOB : Maximum 大小:,(4,GB 作用;1),*,DB_BLOCK_SIZE  initialization  parameter  (8, TB 用128年,结核病),从而number  of  LOB 列   per 才能table  is  limited  only  by 从而maximum  number  of  columns  per  table  (that 是,10001)。

<强> LOB可以用在什么地方?

LOB除了可以用在表中定义列的类型外,还可以用来存储XML数据,甲骨文的集合类型,看下面的例子:

1)创建表lobtest (varchar2 (20), b clob, c blob)表空间用户;LOB表的定义

2) LOB存储集合类型

上创建表空间功能大小102464 k autoextend person_lob未来100 m最大容量1024000 k范围管理本地均匀大小1 m段空间管理汽车;
/
改变用户mayp配额无限person_lob;

创建或替换person_att类型是对象(身份证号码(5),名字varchar2(30),性别varchar2(1)、年龄(5,2)数量),
/
创建或替换类型person_atts varray (5) person_att;
/
创建表的人(person_id(5)数量,attribute1 person_atts)
varray attribute1商店LOB person_attribute (
表空间person_lob
中启用存储行
16384
pctversion 5块缓存读

指数person_lob_idx)

表空间用户pctfree 0
/
上面定义了一个用LOB存储varray类型数据的例子。

<>强LOB段有哪些属性?

默认情况下,当定义了含有LOB字段的表后,oracle会自动为每个LOB创建两个段,LOB段和LOB索引段。lob段存储了每个lob的具体的值,而lob索引段则存储了每个lob值的地址。lob, lob索引段和表段存储在同一个表空间中.oracle为lob段提供了单独的段属性。我们在创建表时可以定义将lob和表分别存储在不同的表空间中。平常定义lob时,我们必须考虑以下几个比较重要的属性:

<强>块:强比甲骨文块大小更大的一种逻辑块,专用于lob数据的存储,默认为db_block_size的大小,如果手动定义必须定义为db_block_size的倍数。最大不能超过32 k。不合理的块定义不及浪费存储空间,而且还会影响性能。那么在定义前必须了解应用,每个LOB列的数据的平均大小,尽量减少LOB的空间浪费。看下面的表格能说明一切:

<>之前,,Data  Size ,,,,,,,,,,,,,,,,,,,, CHUNK  Size ,,, Disk  Space  Used 用Store 从而LOB , Space 利用率(%)   null   null   null

甲骨文lob简单介绍