学习oracle的域索引1

oracle中的域索引

oracle中的索引主要包括以下几种索引:
1.B-Tree index
2.Bitmap index
3.Function Based Index
4.Domain index
等等.

域索引实际为用户自定义索引,域索引主要对存储在数据库中的媒体,图像数据进行索引,这些数据在oracle中基本上
以BLOB类型存储,不同的应用存储格式也不同,oracle不可能提供某一种现成的算法对这些数据进行索引,为了能够对
这些类型数据快速访问,oracle提供了现成的接口函数,用户可以针对自己的数据格式实现这些接口函数,以达到对这些
数据的快速访问。

看一个建立在符合类型字段上的一个域索引:

SQL> select * from (select index_name from dba_indexes where wner='SDE' and ind
ex_type='DOMAIN') where rownum<=1;

INDEX_NAME
------------------------------
A445_IX1

然后看看A445_IX1的定义


SQL> set long 10000
SQL> select dbms_metadata.get_ddl('INDEX','A445_IX1','SDE') from dual;

DBMS_METADATA.GET_DDL('INDEX','A445_IX1','SDE')
--------------------------------------------------------------------------------


  CREATE INDEX "SDE"."A445_IX1" ON "SDE"."SUBSTATION" ("SHAPE")
   INDEXTYPE IS "SDE"."ST_SPATIAL_INDEX" PARAMETERS ('ST_GRIDS=360.000000000000,

0.000000000000,0.000000000000 ST_SRID=2 ST_COMMIT_ROWS=10000 PCTFREE 0 INITRANS
4')

从定义上可以看出该索引是定义在SDE.SUBSTATION表上的SHAPE字段的,看看shape字段是如何定义


SQL> desc sde.substation;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 OBJECTID                                  NOT NULL NUMBER(38)
 NAME                                               NVARCHAR2(64)
 IS_USER                                            NVARCHAR2(4)
 VOLTAGE_LEVEL                                      NVARCHAR2(32)
 SYS_ID                                    NOT NULL NUMBER(10)
 STATUS                                             NVARCHAR2(32)
 VINDICATOR_ID                                      NVARCHAR2(20)
 VINDICATOR                                         NVARCHAR2(30)
 CREATOR_ID                                         NVARCHAR2(20)
 CREATOR                                            NVARCHAR2(30)
 CREATE_DATE                                        DATE
 ZONE_ID                                            NVARCHAR2(50)
 PWMIS_CODE                                         NUMBER(10)
 DESCRIPTION                                        NVARCHAR2(100)
 SHAPE                                              SDE.ST_GEOMETRY

SHAPE字段为SDE.ST_GEOMETRY类型,该类型为符合类型,然后可以看看ST_GEOMETRY是如何定义的

SQL> desc sde.st_geometry;
 sde.st_geometry is NOT FINAL
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 ENTITY                                             NUMBER(38)
 NUMPTS                                             NUMBER(38)
 MINX                                               FLOAT(64)
 MINY                                               FLOAT(64)
 MAXX                                               FLOAT(64)
 MAXY                                               FLOAT(64)
 MINZ                                               FLOAT(64)
 MAXZ                                               FLOAT(64)
 MINM                                               FLOAT(64)
 MAXM                                               FLOAT(64)
 AREA                                               FLOAT(64)
 LEN                                                FLOAT(64)
 SRID                                               NUMBER(38)
 POINTS                                             BLOB

METHOD
------
 FINAL CONSTRUCTOR FUNCTION ST_GEOMETRY RETURNS SELF AS RESULT
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 GEOM_STR                       CLOB                    IN
 SRID                           NUMBER                  IN

METHOD
------
 MEMBER FUNCTION ST_AREA RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_LEN RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_LENGTH RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_ENTITY RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_NUMPTS RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_MINX RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_MAXX RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_MINY RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_MAXY RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_MINM RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_MAXM RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_MINZ RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_MAXZ RETURNS NUMBER

METHOD
------
 MEMBER FUNCTION ST_SRID RETURNS NUMBER

METHOD
------
 STATIC FUNCTION GET_RELEASE RETURNS NUMBER

索引的类型为INDEXTYPE IS "SDE"."ST_SPATIAL_INDEX" ,查看一下ST_SPATIAL_INDEX的类型

SQL> select owner,object_type from dba_objects where object_name='ST_SPATIAL_IND
EX';

OWNER                          OBJECT_TYPE
------------------------------ -------------------
SDE                            INDEXTYPE

类型为INDEXTYPE,具体INDEXTYPE是个什么类型的东东,查看一下其定义

SQL> select dbms_metadata.get_ddl('INDEXTYPE','ST_SPATIAL_INDEX','SDE') from dua
l;

DBMS_METADATA.GET_DDL('INDEXTYPE','ST_SPATIAL_INDEX','SDE')
--------------------------------------------------------------------------------


  CREATE OR REPLACE INDEXTYPE "SDE"."ST_SPATIAL_INDEX" FOR
         "SDE"."ST_CONTAINS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_CROSSES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", NUMBER, NUMBER, NUMBER,
NUMBER)
,
         "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_EQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_INTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_ORDERINGEQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_OVERLAPS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),

DBMS_METADATA.GET_DDL('INDEXTYPE','ST_SPATIAL_INDEX','SDE')
--------------------------------------------------------------------------------

         "SDE"."ST_RELATE" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", VARCHAR2),

         "SDE"."ST_TOUCHES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_WITHIN" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY")
         USING "SDE"."ST_DOMAIN_METHODS"
         WITH LOCAL RANGE PARTITION
对ST_SPATIAL_INDEX的具体的含义,下次了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8052309/viewspace-625296/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8052309/viewspace-625296/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值