操作方法
Oracle 提示将向优化器提供指令,以便为正在执行的 SQL 语句选择执行计划。
Oracle INDEX 提示指示优化器对指定表使用索引扫描。 将 INDEX 提示用于基于函数、域、B 树、位图和位图连接索引。
使用包含 ST_Geometry 属性和 st_spatial_index 的表时,需要指定 Oracle INDEX 提示和 st_spatial_index 的名称以指示优化器通过索引来访问数据。
如 Oracle 的 SQL 参考文档所述,(“如果 INDEX 提示指定了单个可用索引,则数据库将对该索引执行扫描。 优化器不考虑全表扫描或表上另一个索引的扫描。”)当指定了 INDEX 提示时,优化器将使用索引作为主要访问路径。
注: Oracle 12c 中的优化器可以覆盖这种类型的提示。
以下示例将演示一个 SQL 语句,该语句使用两个谓词过滤器来查询 parcels 表,其中所有者等于“ARATA”,并且包络矩形与特定区域相交。
Parcels 表具有关于形状和所有者属性的索引。 通过在 SQL 语句中包含 INDEX 提示“/*+ INDEX (parcels shape_idx) */”,
可指示优化器使用形状的索引作为访问路径(即使所有者索引的选择性和成本小于使用形状指数的成本也是如此)。
SQL> SELECT /*+ INDEX (parcels shape_idx) */ 2 FROM parcels 3 WHERE owner = 'ARATA' 4 AND st_envintersects(shape, 10, 12, 12, 14) = 1;
有关设置 Oracle 提示和其他提示的详细信息,请参阅 Oracle 文档。
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序