当 CREATE INDEX 语句执行成功,有或没有 ONLINE 关键字,
GBase 8s
自动为新建的索引生成统计信息,并用等同的在根据索引类型方式中 UPDATE
STATISTICS 操作的值更新
sysdistrib 系统目录表:
- 索引级别统计信息,等同于 UPDATE STATISTICS 在 LOW 方式中生成的统计信息,它们可用于大多数类型的索引计算,包括 B-tree
、虚拟索引和函数型索引。
- 列分布存储统计信息,等同于普通 B- tree 索引的前导索引列在 HIGH 方式中的生成的分布。如果表由少于百万的行,则解析百分比为 1.0 ,对于较大的表则为
0.5
。
当优化程序为创建新索引的表设置查询计划时,这些分布统计信息对优化程序有效。
对于复合键索引,只有前导列的分布存储能由 CREATE INDEX 语句隐式地创建。
以下类型的索引不支持隐式创建分布统计信息:
- 在用户定义的数据类型的列上的索引
- 在内置透明数据类型(包括 BOOLEAN 和 LVARCHAR)的列上的索引
- R-tree 索引
- 连接索引
如果分布统计的计算在 CREATE INDEX 操作期间失败,则数据库服务器在错误日志中报告该失败,但仍会继续创建索引。
当通过显式或隐式 CREATE INDEX 操作成功创建了分布存储时,如果 SET EXPLAIN 设置为 ON ,则会生成以下解释信息(类似于 UPDATE STATISTICS
生成的信息)。
Index: idx_01 on nita.foo
STATISTICS CREATED AUTOMATICALLY:
Column Distribution for: nita.foo.a
Mode: MEDIUM
Number of Bins: 101 Bin size: 100.0
Sort data: 0.3 MB
Completed building distribution in: 0 minutes 33 seconds
有关分布存储统计信息和分布在 LOW 方式和 MEDIUM 方式之间的不同的信息,请参阅 UPDATE STATISTICS 语句中的描述。