在使用 ST_Geometry 空间索引时优化 Oracle 查询性能和存储
2013-04-01 08:47
447 查看
原文地址:http://support.esri.com/en/knowledgebase/techarticles/detail/33341
概要说明
提供的说明描述如何使用 ST_Geometry,通过减少索引块的数量由每个空间的查询使用空间索引 (ST_Spatial_Index) 的读取时提高查询性能。减少为结构化查询语言 (SQL) 语句的逻辑或物理 I/O 操作提高了查询速度,并提高了服务器,提供进一步的可扩展性上的资源。
步骤过程
ALTER TABLE <table_name> 收缩(SHRINK)空间紧凑级联的 Oracle 命令可以减少存储通过压缩尽可能少块中的数据的表或索引所需的块的数目。该命令需要的收缩的部分驻留使用自动段管理的表空间中。
若要缩小空间索引,请执行以下步骤:
1:查看域索引表,获得空间索引的名称。
下面的示例演示如何获取一个名为 'Parcels' 表的空间索引标识符以及如何执行 ALTER TABLE 命令以收缩空间索引。作为表的所有者,应执行步骤。
关于索引表已经索引对象参考:/article/1358792.html
2:检查索引 leaf_blocks 存在之前和之后执行的收缩命令的数目。这将有助于验证使用收缩命令的好处。
例如:
执行收缩之前:
执行收缩之后
3:执行索引对象收缩之后,更新表的统计信息
-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
-------------------------------------------------------------------------------------------------------
Article ID: | 33341 |
---|---|
Software: | ArcSDE 9.2, 9.3, 9.3.1, 10, 10.1 ArcGIS for Desktop Advanced 10.1, 10.2 ArcGIS for Desktop Standard 10.1, 10.2 ArcGIS for Desktop Basic 10.1, 10.2 |
Platforms: | N/A |
提供的说明描述如何使用 ST_Geometry,通过减少索引块的数量由每个空间的查询使用空间索引 (ST_Spatial_Index) 的读取时提高查询性能。减少为结构化查询语言 (SQL) 语句的逻辑或物理 I/O 操作提高了查询速度,并提高了服务器,提供进一步的可扩展性上的资源。
步骤过程
ALTER TABLE <table_name> 收缩(SHRINK)空间紧凑级联的 Oracle 命令可以减少存储通过压缩尽可能少块中的数据的表或索引所需的块的数目。该命令需要的收缩的部分驻留使用自动段管理的表空间中。
若要缩小空间索引,请执行以下步骤:
1:查看域索引表,获得空间索引的名称。
下面的示例演示如何获取一个名为 'Parcels' 表的空间索引标识符以及如何执行 ALTER TABLE 命令以收缩空间索引。作为表的所有者,应执行步骤。
SQL> SELECT 'S'||index_id||'_IDX$' AS DOMAIN_INDEX FROM sde.st_geometry_index WHERE owner = USER AND table_name = 'PARCELS'; DOMAIN_INDEX ------------ S15_IDX$ SQL> ALTER TABLE s15_idx$ SHRINK SPACE COMPACT CASCADE; Table altered.
关于索引表已经索引对象参考:/article/1358792.html
2:检查索引 leaf_blocks 存在之前和之后执行的收缩命令的数目。这将有助于验证使用收缩命令的好处。
例如:
执行收缩之前:
SQL> SELECT index_name, leaf_blocks FROM user_indexes WHERE table_name = 'S15_IDX$'; INDEX_NAME LEAF_BLOCKS -------------------- ----------- S15$_IX2 18427 S15$_IX1 27465
执行收缩之后
SQL> SELECT index_name, leaf_blocks FROM user_indexes WHERE table_name = 'S15_IDX$'; INDEX_NAME LEAF_BLOCKS -------------------- ----------- S15$_IX1 13973 S15$_IX2 17406
3:执行索引对象收缩之后,更新表的统计信息
SQL> exec dbms_stats.gather_table_stats(user,'parcels');
-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
-------------------------------------------------------------------------------------------------------
相关文章推荐
- 在使用 ST_Geometry 空间索引时优化 Oracle 查询性能和存储
- oracle 性能优化操作十七: 使用位图索引
- Oracle模糊查询之(3.2从使用函数和sql语法角度来提高模糊查询效率 二)ORACLE中Like与Instr模糊查询性能大比拼
- oracle 性能优化操作十: 分解复杂查询,用常量代替变量
- Oracle 使用 with as 优化重复查询
- oracle 性能优化操作十八: 决定使用全表扫描还是使用索引
- 基于Oracle PLSQL的存储过程性能优化方法案例
- oracle 性能优化操作三:增加查询的范围限制
- ArcSDE10.1配置Oracle 监听器来使用SQL操作ST_Geometry
- oracle 性能优化操作三:增加查询的范围限制
- Oracle、MySQL的分页语句和使用ThreadLocal的性能优化问题
- oracle 性能优化操作七:索引提高数据分布不均匀时查询效率
- Oracle查询优化-使用字符串
- Oracle查询性能优化
- 利用多域名存储静态资源进行性能优化:网站的静态资源为什么要使用独立域名
- 配置Oracle的监听来使用ST_Geometry
- SQL Server 2016 查询存储性能优化小结
- Oracle 查询性能优化实践
- 数据库性能优化(强制使用索引查询)
- 如何使用Oracle中autotrace来实现性能优化