您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 关于ORACLE空间索引扩展性与可操纵性的实践
关于ORACLE空间索引扩展性与可操纵性的实践在ORACLE中对于海量的空间数据(上千万级别),直接创建或维护空间索引将会是噩梦,如果你直接创建空间索引,你将会耗费超过创建同样数量级的B—TREE索引100倍的时间。1、使用表分区与本地空间索引一般来说,ORACLE推荐使用表分区技术来管理大规模的空间数据表(上千万或者更多)。事实上表的分区是一种被推荐的机制,用来测量极大规模的数据库(10的18次方字节)。由于创建一个空间索引比创建一个B—TREE索引要慢几个数量级。表分区技术明显有利于快速创建有管理大规模的空间索引。常用对于空间数据的表分区是参照行政区划进行分区,这主要是因为空间数据的更新是以局部更新为主的。例如以下例子:创建一个全国空间数据表,以行政区划代码进行分区:createtableTAB_LOCATION(idNUMBER(12)notnull,nameVARCHAR2(500),DISTRICTNUMBER(12),--行政区划GEOMmdsys.sdo_geometry,--空间数据字段stampDATE)partitionbyrange(DISTRICT)(partitionparAvalueslessthan(120000)tablespaceCW_SPLIT_TS1,partitionparCvalueslessthan(310000)tablespaceCW_SPLIT_TS2,partitionparFvalueslessthan(340000)tablespaceCW_SPLIT_TS3,partitionparHvalueslessthan(410000)tablespaceCW_SPLIT_TS4,partitionparIvalueslessthan(440000)tablespaceCW_SPLIT_TSI5partitionparKvalueslessthan(510000)tablespaceCW_SPLIT_TS6,partitionparMvalueslessthan(610000)tablespaceCW_SPLIT_TS7,partitionparNvalueslessthan(maxvalue)tablespaceCW_SPLIT_TS8);创建一个本地分区的空间索引,如下:createindexTAB_LOCATION_SIDXonTAB_LOCATION(geom)indextypeismdsys.spatial_indexLOCAL;2、为了更好地管理,创建索引时把本地索引创建为UNUSABLEcreateindexTAB_LOCATION_SIDXonTAB_LOCATION(geom)indextypeismdsys.spatial_indexLOCALUNUSABLE;3、为每个分区单独重建空间索引alterindexTAB_LOCATION_SIDXrebuildpartitionparA;4、使用交换分区技术解决索引创建失败的问题,同时交换含有索引的交换分区altertableTAB_LOCATIONexchangepartitionparAwithtabletmpincludingindexes;5、做查询优化时使用指定分区关键字或指定PARLLEL子句来确保分区索引的并行查询总之表分区为大规模空间数据表上空间索引的可测量性和可操纵性了一种有效的保障机制。
本文标题:关于ORACLE空间索引扩展性与可操纵性的实践
链接地址:https://www.777doc.com/doc-2665582 .html