
在关系数据库中,建立属性项的索引可加快属性数据的查询,同样,ArcSDE通过建立图层的空间索引表(或S表),以减少Shape-Shape的比较运算,在ArcSDE的客户端使用空间过滤器减少从数据库返回的记录数,可以避免检索整个表,减少检索的数据记录数量,从而减少数据的输入/输出的 *** 作,加快了空间数据查询的速度(毛锋等,2000)。
ArcSED采用格网索引方式。格网索引是将空间区域划分成合适大小的正方形格网,记录每一个格网内所包含的空间实体(对象),以及每一个实体的封装边界范围,即包围空间实体的左下角和右上角坐标。当用户进行空间查询时,首先计算出用户查询对象所在网格,然后通过格网号,就可以快速检索到所需要的空间实体。
因此,确定合适的格网级数、单元大小是建立空间格网索引的关键。格网单元的大小不是一个确定的问题,需要多次尝试方可得到。格网太大,在一个格网内有多个空间实体,查询检索的准确度低。格网太小,则索引数量成倍增长和冗余,检索的速度和效率低。为提高数据库的工作效率,国土资源遥感综合调查基础数据库中的每一个数据层采用不同大小、不同级数的空间索引网格单元。
11.4.4.2 栅格数据的空间索引
栅格数据的空间索引可通过建立多级金字塔结构实现。金字塔结构是栅格数据集的分辨率递减的反映,用来提供显示阶性能。建立金字塔的目的就在于优化显示的性能和效率。金字塔最底层的分辨率总是最高,依次向上递减。金字塔通过只取得满足显示要求的相应分辨率的数据来提高栅格显示阶性能,当建立金字塔时,更多的栅格会被持续创建直到到达定点或者层数上限,当应用程序缩小视图范围(zoom out)或者栅格方格小于分辨率阈值时,ArcSDE将选择金字塔中的一个更高的层次。每一个栅格数据集可根据本身数据分辨率的情况采用不同级数的金字塔结构。
通过上面的文章咱们可能得出,假设心愿Oracle分区后,索引也停止相应的分区,需求在DBTUNE减少相应的要害字ST_INDEX_PARTITION_LOCALB_STORAGE "PCTFREE 0 INITRANS 4 PARTITION BY RANGE (OBJECTID) ( PARTITION CUS_PART1 VALUES LESS THAN (2000) TABLESPACE SDE, PARTITION CUS_PART2 VALUES LESS THAN (6000) TABLESPACE ESRI ) " ST_INDEX_PARTITION_LOCAL "TRUE"这样重新导入到ArcSDE外面,而后导入数据数据的索引就存储在和数据相应的表空间外面了依照上面的信息,将数据导入进ArcSDE,可能看到Sde用户新增了一个对于分区索引的办理表sql">SQL>desc st_partition_index 称谓能否为空必修 类型 ----------------------------------------- -------- ---------------------------- OWNER NVARCHAR2(32) TABLE_NAME NVARCHAR2(32) COLUMN_NAME NVARCHAR2(32) GEOM_ID NUMBER(38) PARTITION_NAME NVARCHAR2(32) GRID SP_GRID_INFO VERSION NUMBER(38) STATUS NVARCHAR2(10) UNIQUENESS VARCHAR2(9) DISTINCT_KEYS NUMBER BLEVEL NUMBER LEAF_BLOCKS NUMBER CLUSTERING_FACTOR NUMBER DENSITY NUMBER NUM_ROWS NUMBER NUM_NULLS NUMBER SAMPLE_SIZE NUMBER LAST_ANALYZED DATE USER_STATS VARCHAR2(3) MINX NUMBER MINY NUMBER MAXX NUMBER MAXY NUMBER咱们检查这个表外面的信息sql">SQL>select table_name,Partition_name,Geom_id,column_name from st_partition_indexTABLE_NAME PARTITION_NAME GEOM_ID COLUMN_NAME --------------------------------------------- ------------------------------------------ ZD CUS_PART1 11 SHAPE ZD CUS_PART2 11 SHAPE 盘问一下相干的信息能否在对应的表空间外面sql">SQL>select objectid,rowid from zd where objectid=1999 or objectid=2000OBJECTID ROWID ---------- ------------------ 1999 AAASttAAGAAABX2AAI 2000 AAAStuAAFAAAACOAAA sql">SQL>select sp_id from s11cus_part1 where rownum<2SP_ID ------------------ AAASttAAGAAABXcAAO sql">SQL>select sp_id from s11cus_part2 where rownum<2SP_ID ------------------ AAAStuAAFAAAADnAAH咱们可能看到AAAStt和AAAStu是在差异的表空间外面。对于空间索引分区Esri提供了如下的协助An ST_Geometry st_spatial_index domain index can be built to have discrete index partitions that correspond to each partition for range-partitioned tables. This type of index is called a local domain index, as opposed to a global domain index, which has no index partitions. A local domain index is equally partitioned with the underlying table. For each partition: all keys in a local domain index refer to rows stored in its corresponding table partition. St_spatial_index local domain indexes can be created only for range-partitioned, heap-organized tables. Local domain indexes cannot be built for hash-partitioned tables or Indexed Organized Tables. 通过第三段咱们可能看出,Esri的空间索引的当地区索引只反对范畴分区和堆组织表,不反对哈希分区或许索引组织表。最近有用户问怎样 *** 作SQL语句之间创建ArcSDE的索引并且这些索引页停止分区,大家可能参考以下命令假设用户已经定义好相干的DBTUNE文件,并且也减少了对于ST_INDEX_PARTITION_LOCAL,创建索引可能被动根据要害字调配的存储。假设需求手动创建,创建索引可能 *** 作如下命令SQL>CREATE INDEX st_shape_index 2 ON parcels (shape) 3 INDEXTYPE IS sde.st_spatial_index 4 PARAMETERS('st_srid=1 st_grids=280') 5 LOCALIndex created.在创建进程中,假设你的ST-SRID设置的差池,会揭示如下舛误SQL>CREATE INDEX st_zd_shape_index ON ZD (shape) INDEXTYPE IS sde.st_spatial_index PARAMETERS('st_srid=5 st_grids=280') LOCALCREATE INDEX st_zd_shape_index ON ZD (shape) INDEXTYPE IS sde.st_spatial_index PARAMETERS('st_srid=5 st_grids=280') LOCA L * 第 1 行呈现舛误: ORA-29855: 执行 ODCIINDEXCREATE 例行顺序时出错 ORA-20083: Parameter ST_SRID 5 does not exist in ST_SPATIAL_REFERENCES table. ORA-06512: 在 "SDE.SPX_UTIL", line 938 ORA-06512: 在 "SDE.ST_DOMAIN_METHODS", line 1312假设需求删除索引会报如下舛误SQL>drop index ST_SHAPE_INDEXdrop index ST_SHAPE_INDEX * 第 1 行呈现舛误: ORA-29952: 无奈对标记为 LOADING 的域索引分区收回 DDL 命令 *** 作如下方法即可删除SQL>drop index ST_SHAPE_INDEX force索引已删除。其实不需求检查ST_SPATIAL_REFERENCES表,咱们只要求检查st_geometry_columns表的因素类对应的SRID即可SQL>select SRID from st_geometry_columns where table_name='ZD'SRID ---------- 300002设置好相应的SRID再次创建SQL>CREATE INDEX st_zd_shape_index ON ZD (shape) INDEXTYPE IS sde.st_spatial_index PARAMETERS('st_srid=300002 st_grids= 280') LOCAL索引已创建。假设用户的索引想存储在其余磁盘的表空间,也可能 *** 作如下命令:SQL>CREATE INDEX st_shape_index 2 ON parcels (shape) 3 INDEXTYPE IS sde.st_spatial_index 4 LOCAL (PARTITION quarter1 PARAMETERS('st_srid=1 st_grids=280 TABLESPACE q1_idx 5 STORAGE (INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 256 PCTINCREASE 0)'), 6 PARTITION quarter2 PARAMETERS('st_srid=1 st_grids=280 TABLESPACE q2_idx 7 STORAGE (INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 256 PCTINCREASE 0)'), 8 PARTITION quarter3 PARAMETERS('st_srid=1 st_grids=280 TABLESPACE q3_idx 9 STORAGE (INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 256 PCTINCREASE 0)'), 10 PARTITION quarter4 PARAMETERS('st_srid=1 st_grids=280 TABLESPACE q4_idx 11 STORAGE (INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 256 PCTINCREASE 0)'), 12 PARTITION qunknown PARAMETERS('st_srid=1 st_grids=280 TABLESPACE qunknown_idx 13 STORAGE (INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 256 PCTINCREASE 0)'))Index created.
空间数据库引擎:ArcSDE9.0(arc spatial database engine);此软件被用作系统后台(Server),其优势在于能按照用户需求合理地管理大规模甚至超大规模的空间数据库,为系统前端提供高效的空间数据和复杂的空间分析服务。
选择空间数据库引擎SDE作为空间数据库管理系统,是一套管理空间数据并提供访问这些数据接口的软件,通过ArcSDE可以把地理空间数据应用到商用的关系型数据库中,SDE融入DBMS后,提供了对空间数据进行高效率 *** 作的接口,大量用户可以同时针对同一数据进行 *** 作,更重要的是ArcSDE客户和服务器之间的通讯建立在TCP/IP协议上,这使得ArcSDE不但能满足局域网的应用,而且能满足远程网的应用。
通过ArcSDE,能够管理具有数百万空间要素的大型空间数据集。ArcSDE对各级企业均能适用,这归功于其在客户与服务器间协同处理。ArcSDE通过TCP/IP协议,提供网络上的开放数据访问;同时,ArcSDE可运行在不同的 *** 作系统环境中,如UNIX,Microsoft Windows的客户端与服务器端。
为了实现以关系数据库管理系统(Oracle)为基础的空间数据管理,需要使用空间数据库引擎。良好的空间数据库引擎能够为数据库的应用系统开发提供高性能的支持。ESRI公司的ArcSDE for Or-acle 是一个基于Oracle的空间数据库引擎,它的空间数据管理高效而稳定,将作为本项目综合数据库的必须软件产品之一。其特点:
(1)对地理数据的开放式系统访问
ArcSDE利用开放系统结构,使得地理数据易于获得,可以把地理数据的管理与使用同其他传统的多媒体数据库合并到一个平滑的计算机环境中。利用ArcSDE的开放性,用户可以进行从简单到复杂的空间数据分析,从几个到许多地理特征的提取,访问超大规模的数据库,高效完成各种复杂任务。
(2)进行高效查询分析
ArcSDE提供一组可靠的几何处理与空间分析功能,通过此功能确定各地理实体间的相互关系,如相交于一点、共一条边界、共一个区域或一个实体包含另一个实体。而且还可以把空间分析嵌入到一个非GIS的应用程序中去。
(3)理想的空间对象模型
ArcSDE把线特征表示成一条不能自相交的线,或只能在终点相交的线;面特征表示成一个简单的多边形或多边形组合。空间对象类型有点、点集、串、线串、环、多边形、环纹多边形(donut polygon)以及网络数据,一个组合数据集称为一个层。层是具有相同形式对象类型的一组地理特征,地理特征通过图层这种空间连续策略进行索引,提高数据管理效率。
(4)快速实现过程
ArcSDE对于复杂空间查询的处理的效率体现在对次要特征(Subsecond Feature)的检索上,快速访问与检索是在C/S模式上实现的,客户端主要是响应空间分析 *** 作,服务器则进行数据搜索和检索。这种互 *** 作处理方法使得动态空间叠加成为可能,当大量增加客户端的时候,利用这种处理可以把客户机带来的性能下降降到最小。
(5)其他
客户端可以通过TCP/IP协议访问Arc/Info数据,不用通过传统的直接挂到数据库所在的磁盘上进行访问,这样系统就可以建立在广域网上,数据分布将不受地域限制。同时允许将一部分数据放在RDBMS中,另一部分数据以传统Arc/Info数据格式保存。而客户端的应用将以同一种方式进行访问,即数据源的不同对客户而言是完全透明的。
ArcSDE本身并没有专用数据库,而是通过与其他通用的DBMS的集成来管理空间数据。根据DBMS的类型,ArcSDE与DBMS的集成可分为两种:①与传统的关系型数据库管理系统(RDBMS)的集成,由于传统的RDBMS不支持数据类型的扩展,无法管理空间数据,只能通过ArcSDE对空间数据和空间 *** 作进行解释和管理。②与面向对象关系数据库(OORDMS)的集成。由于面向对象的关系支持新的数据类型和函数的扩展,ArcSDE可以直接在数据库中定义空间数据类型和空间函数。于是可以通过基于SQL的函数对空间数据进行 *** 作,并在数据库层次建立空间索引。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)