易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle全文索引之STORAGE PREFERENCE



Oracle全文索引的STORAGE属性是为了给全文索引生成的辅助表设置存储参数的。
Oracle的全文索引会生成一张或多张辅助表,由于这些表是Oracle自动生成的,用户没有办法直接设置这些表和索引的物理参数,因此Oracle提供了STORAGE属性,专门设置这些辅助表和索引的物理参数。
SQL> SELECT * from TAB;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DR$IND_T_DOCS$I TABLE
DR$IND_T_DOCS$K TABLE
DR$IND_T_DOCS$N TABLE
DR$IND_T_DOCS$P TABLE
DR$IND_T_DOCS$R TABLE
T TABLE
已选择6行。
上面的五张表都是全文索引生成的。CONTEXT索引生成表的规则是DR$+索引名+$+表用途标识。
DR$IND_T_DOCS$I存储的是索引数据表(Index data table);
DR$IND_T_DOCS$K存储的是键值映射表(Keymap table);
DR$IND_T_DOCS$R是ROWID表(Rowid table);
DR$IND_T_DOCS$N是负键值链表(Negative list table);
DR$IND_T_DOCS$P这个表只有在CONTEXT索引中设置BASIC_WORDLIST的SUBSTRING_INDEX属性后才会生成,用来保存单词的部分内容。
DR$IND_T_DOCS$X这个索引是DR$IND_T_DOCS$I表的索引。
SQL> SELECT TABLE_NAME, INDEX_NAME from USER_INDEXES WHERE INDEX_NAME LIKE 'DR%';
TABLE_NAME INDEX_NAME
------------------------------ ------------------------------
DR$IND_T_DOCS$I DR$IND_T_DOCS$X
如果不进行设置,那么Oracle会将这些对象存放到默认表空间中,并根据默认表空间的存储参数设置这些对象的存储参数。
SQL> SELECT
2 TABLE_NAME NAME,
3 DECODE
4 (
5 IOT_TYPE,
6 'IOT',
7 (
8 SELECT TABLESPACE_NAME
9 from USER_INDEXES
10 WHERE TABLE_NAME = A.TABLE_NAME
11 AND INDEX_TYPE = 'IOT - TOP'
12 ),
13 TABLESPACE_NAME
14 ) TABLESPACE_NAME
15 from USER_TABLES A
16 WHERE TABLE_NAME LIKE 'DR%'
17 UNION ALL
18 SELECT INDEX_NAME NAME, TABLESPACE_NAME
19 from USER_INDEXES
20 WHERE INDEX_NAME LIKE 'DR%';
NAME TABLESPACE_NAME
--------------------


相关文档:

oracle 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

Oracle中BLOB/CLOB字段可能遇到的问题

Blob 采用单字节存储,适合保存二进制数据,如图片、视频等。
Clob 采用多字节存储,适合保存大型文本数据。
1. 在Oracle JDBC中采用流机制对 BLOB/CLOB 进行读写操作,所以要注意不能在批处理中读写 BLOB/CLOB字段,否则将出现
Stream type cannot be used in batching 异常。
2. Oracle BLOB/CLOB 字段本身拥有一个游 ......

Oracle问题汇总

遇到的一些Oracle的零碎问题:
1、使用自定义异常,raise_application_error(异常编号,异常信息)。
     A、异常编号注意不要超长,一般到5位
     B、异常信息是一个字符串信息
     C、配合存储过程中exception使用 ......

在oracle利用游标取数据库的结果集应用实例:

SQL> create table test2(s1 varchar(10),s2 varchar2(10));
表已创建。
SQL> insert into test2 values('11','111');
已创建 1 行。
SQL> insert into test2 values('22','222');
已创建 1 行。
SQL> CREATE OR REPLACE PACKAGE test222 AS
2 TYPE t_cursor IS REF CURSOR;
3 procedure p_tes ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号