连接表的索引

数据库服务器试图重新使用对附加表的索引,作为所生成索引的分段。 但是,附加表的相应索引可能不存在,或者可能由于磁盘格式不匹配而不能使用。 在这些情况下,对附加表建立索引可能比对合成表建立整个索引要快。

GBase 8s 将估计对生成的表创建整个索引的成本。 然后,服务器将此成本与为附加表构建单独的索引分段所用成本相比较,选择成本较小的索引构建。

自动收集的新索引统计信息

成功运行 CREATE INDEX 语句时,无论 ONLINE 关键字存在与否,GBase 8s 都将自动收集新创建索引的以下统计信息:
  • 索引级别的统计信息,等同于在 LOW 方式中在 UPDATE STATISTICS 操作收集到所有类型的索引的统计信息,包括 B 型树、虚拟索引接口和函数索引。
  • 对于一般 B 型树索引的透明主索引列,列分布统计信息等同于在 HIGH 方式的 UPDATE STATISTICS 操作中生成的分布。对于少于一百万行的表,HIGH 方式的分辨率是 1.0,对于更大的表,该值为 0.5。由于具有更多数据容器的统计信息,因而多于 1000000 个行的表具有更好的分辨率。

查询优化器为创建新索引的表设计查询计划时,自动收集的分布统计信息可用于该优化器。

附加表之前运行 UPDATE STATISTICS

要确保成本估计的正确性,您应在附加表之前对所有参与的表执行 UPDATE STATISTICS 语句。UPDATE STATISTICS 语句的 LOW 模式足以使优化器获取适当的统计信息来确定重建索引的成本估计值。

有关 UPDATE STATISTICS 语句的更多信息,请参阅 GBase 8s SQL 指南:语法