Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 系统对象 » 系统过程 » 按字母顺排序的系统过程列表

 

sa_get_histogram 系统过程

检索列的直方图。

语法
sa_get_histogram( 
  col_name,
  tbl_name
  [, owner_name ]
)
参数
  • col_name   使用此 CHAR(128) 参数指定从中检索直方图的列。

  • tbl_name   使用此 CHAR(128) 参数指定从中找到 col_name 的表。

  • owner_name   使用此可选的 CHAR(128) 参数指定 tbl_name 的所有者。

结果集
列名 数据类型 说明
StepNumber SMALLINT 直方图域桶数。第一个域桶的频率 ( StepNumber = 0) 指示 NULL 的选择性。
Low CHAR(128) 域桶中的最低列值(包括最低值)。
High CHAR(128) 域桶中的最高列值(不包括最高值)。
Frequency DOUBLE 域桶中各值的选择性。
注释

此用于内部诊断的过程检索来自数据库服务器指定列的列统计信息。请注意,当这些统计信息永久存储在系统表 ISYSCOLSTAT 中时,它们在服务器运行时保持在内存中,并被定期写入到 ISYSCOLSTAT。因此,由 sa_get_histogram 系统过程返回的统计信息可能与通过在任意给定时间点从 ISYSCOLSTAT 中选择而获取的统计信息不同。

通过使用 sa_flush_statistics 系统过程,可使用内存中所保存的最新统计信息来手工更新 ISYSCOLSTAT,然而,建议在生产环境中不要这样做,此做法应保留以用于诊断目的。请参见sa_flush_statistics 系统过程

单一域桶是通过结果集中的 Low 值等于相应的 High 值进行指示的。

建议您使用直方图实用程序查看直方图。请参见直方图实用程序 (dbhist)

要确定关于字符串列的谓词选择性,使用 ESTIMATE 或 ESTIMATE_SOURCE 函数。对于字符串列,sa_get_histogram 和直方图实用程序都从 ISYSCOLSTAT 系统表中检索不到任何内容。尝试检索字符串数据将会生成错误。请参见ESTIMATE 函数 [Miscellaneous]ESTIMATE_SOURCE 函数 [杂类]

表或实例化视图可能不会显示统计信息(包括直方图),例如,对于最近已删除统计信息的情况。在这种情况下,sa_get_histogram 系统过程的结果集为空。要为表或实例化视图创建统计信息,需执行 CREATE STATISTICS 语句。请参见CREATE STATISTICS 语句

权限

需要 DBA 权限

副作用

另请参见
示例

例如,以下语句检索 SalesOrderItems 表中 ProductID 列的直方图:

CALL sa_get_histogram( 'ProductID', 'SalesOrderItems' );