优化程序所使用的列统计信息的最重要的组成部分是直方图。直方图存储有关值在列中的分布情况的信息。在 SQL Anywhere 中,直方图表示列的数据分布的方式为:将列的域划分为一组连续的值域(也称为桶);对于每个值域(即桶),记下表中有多少行的列值在桶内。
SQL Anywhere 会特别注意出现在表的大量行中的单一列值。重要的单值选择性保留在单个的直方图桶(例如,包括列域中的单个值的桶)中。SQL Anywhere 会尝试在每个直方图中保留最少数量的单个桶,通常是在 10 与 100 之间,具体取决于表的大小。此外,所有选择性大于 1% 的单个值均以单个桶的形式保留。因此,给定列的直方图会记下该列的前 N 个单值选择性,而值 N 取决于表的大小和大于 1% 的单值选择性的数量。
如果满足值域的最低数量,则低选择性频率一旦出现就会被高选择性频率替换。直方图在看到了足够多的选择性大于 1% 的值后,将只拥有多于最低数量的单值域。
有关列统计信息的详细信息,请参见SYSCOLSTAT 系统视图。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |