共计 2187 个字符,预计需要花费 6 分钟才能阅读完成。
这篇文章主要为大家展示了“如何自动创建 LOB 索引段和重建索引”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“如何自动创建 LOB 索引段和重建索引”这篇文章吧。
LOBs,或 Large Objects 字段,是 Oracle 中用于处理存储非字符数据推荐的一种字段类型,例如 mp3,video,图片,和 long 字符串数据。二进制大对象,或 BLOBs,字符大对象,或 CLOBs,能够存储 TB 的数据。
LOB 列有许多相关的属性,每个 LOB 列属性可以使用“LOB (lobcolname) STORE AS …”这种语法来描述。
一个包含 LOBs 字段类型的表 (CLOB,NCLOB 和 BLOB) 会为每个 LOB 列创建两个额外的磁盘段 segment,LOBINDEX 和 LOBSEGMENT。可以通过 DBA_LOBS,ALL_LOBS 或 USER_LOBS 数据字典视图表来查看他们以及 LOB 属性。
按照 MOS(1490228.1)的示例,可以指定 LOBINDEX 和 LOBSEGMENT 的表空间(8i 以前的版本允许 LOBINDEX 和 LOBSEGMENT 使用的表空间不同):
Create table DemoLob ( A number, B clob )
LOB(b)
STORE AS lobsegname (
TABLESPACE lobsegts
STORAGE (lobsegment storage clause)
INDEX lobindexname (
TABLESPACE lobidxts
STORAGE ( lobindex storage clause )
)
)
TABLESPACE tables_ts
STORAGE( tables storage clause )
;
下面再做个简单的实验,证明 LOB 列的表会自动创建 LOB 索引:
SQL create table ml_test1(a clob);
Table created
SQL create index idx_ml_test1 on ml_test1 (a);
create index idx_ml_test1 on ml_test1 (a)
*
ERROR at line 1:
ORA-02327: cannot create index on expression with datatype LOB
ORA-02327: 无法以数据类型 LOB 的表达式创建索引
表明不能用 CREATE INDEX 为 LOB 列创建索引。
SQL col table_name for a10
SQL select index_name,status,index_type,table_name from user_indexes where table_name= ML_TEST1
INDEX_NAME STATUS INDEX_TYPE TABLE_NAME
—————————— ——– ————————— ———-
SYS_IL0000013716C00001$$ VALID LOB ML_TEST1
查看已经为 LOB 列自动创建了一个索引。
col segment_name for a25
SQL select segment_name, segment_type, bytes from user_segments where segment_type like %LOB% or segment_name like %ML%
SEGMENT_NAME SEGMENT_TY BYTES
————————- ———- ———-
SYS_IL0000013716C00001$$ LOBINDEX 65536
SYS_LOB0000013716C00001$$ LOBSEGMENT 65536
ML_TEST1 TABLE 65536
查看该表包含了三个 segment,分别是 TABLE、LOBINDEX 和 LOBSEGMENT 类型。
堆表 MOVE 时,LOB 类型字段和该索引不会跟着 MOVE,必须手工操作 MOVE:
(MOS)ALTER TABLEtest MOVE TABLESPACE tbs1 LOB (lob1, lob2) STORE AS (TABLESPACE tbs2 DISABLE STORAGE IN ROW);
alter tableml_test1 move tablespace users;
alter tableml_test1 move lob(a) store as (tablespace users);
alter table ml_test1 move tablespace users LOB (a) STORE AS lobsegment (TABLESPACE users);
alter table 除了用于移动 LOB,也可以是重建 LOB 字段索引的方法,无法单独重建 LOBINDEX 或 LOBSEGMENT。
以上是“如何自动创建 LOB 索引段和重建索引”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!