Resolution 子句

在 MEDIUM 或 HIGH 模式下,使用 Resolution 子句来调整分发 bin 的大小,并避免在索引上计算数据。

仅在 MEDIUM 模式下,您还可使用 Resolution 子句来指定对采样大小的较低限定,并调整信任级别。
Resolution 子句
MEDIUM 模式的 Resolution 子句
HIGH 模式的 Resolution 子句
元素 描述 限制 语法
confidence 在 MEDIUM 模式下采样的估计的可能性产生的结果正好等同于 HIGH 模式。缺省的级别为 0.95。 必须在从 0.80(最小)至 0.99(最大)的范围内 文字的数值
percent 在每一分发 bin 中采样的平均百分率。MEDIUM 的缺省值为 2.5,HIGH 的缺省值为 0.5。 对于表中的行数 nrows,最小值为 1/nrows 文字的数值
min 在其上生成数据分发的随机选择的行的最小整数数目 必须大于 0,但不可超过 nrows 文字的数值

分发是列中的数据到列值的集合内的映射,按照量或对照排序。将这些样例值分成分离的间隔,称为 bin,每一个都包含列值的样例的大约相等的部分。例如,如果一个 bin 持有数据的 2%,则大约 50 个这样的间隔持有整个样例。

有些统计文本将这些 bin 称为 equivalence categories。每一个都包含从该列采样的数据值的范围的分离的子集。

如果您包括 RESOLUTION 关键字,则必须有一个文字数跟在它之后,指定每一 bin 中值的 percent。在 MEDIUM 模式下,一个或两个文字数可跟在它之后,以可选的第二个数目指定 confidence 级别, 如此例中所示:
UPDATE STATISTICS MEDIUM FOR TABLE orders 
          RESOLUTION 4 0.90 DISTRIBUTIONS ONLY;
          
        
这指定每 bin 数据的 4%,暗指大约 25 个 bin,以及信任级别 90%,且不检测索引数据。如果省略了 0.90 值,则缺省的信任级别会已生效。如果省略了 RESOLUTION 关键字和两个数值,则会使用缺省的 percent 值(2.5%)和 confidence 值(0.95)。

对于包括在 WHERE 子句中的每一列,查询优化器通过测试包含在该列中的数据值的发生比例,来估计 WHERE 子句的选择性。

您不可为 BYTE 或 TEXT 列创建分发。如果您在指定 MEDIUM 或 HIGH 分发的 UPDATE STATISTICS 语句中包括 BYTE 或 TEXT 列,则不为那些列创建分发。然而,为列表中的其他列创建分发,且该语句不返回错误。

VARCHAR 数据类型的列不使用溢出 bin,即使正在为重复的值使用多个 bin 时。

当 UPDATE STATISTICS 语句构建列分布时,您可使用 DBUPSPACE 环境变量的前两个参数来限制 UPDATE STATISTICS 语句可用于数据排序的磁盘空间和内存资源。这些设置影响性能,因为它们决定数据库服务器要扫描指定的表多少次来构建每一分发。(当计算列分布时,第三个 DBUPSPACE 参数可控制 UPDATE STATISTICS 是否以索引排序,以及 explain 输出文件是否通过计算的列分发来存储计划。)