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 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

CREATE STATISTICS 语句

重新创建优化程序所使用的列统计信息,并将它们存储到 ISYSCOLSTAT 系统表中。

语法
CREATE STATISTICS object-name [ ( column-list ) ]
object-name : 
table-name | materialized-view-name | temp-table-name
注释

CREATE STATISTICS 语句重新创建列统计信息,SQL Anywhere 使用此统计信息优化数据库查询,可在基表、实例化视图、局部临时表和全局临时表上执行此语句。但不可以在代理表上创建统计信息。列统计信息包括直方图,它反映数据库中指定列的数据分布情况。缺省情况下,会自动为含有五个或五个以上数据行的表创建列统计信息。

在极少数情况下,数据库查询非常多变,且数据分布不均或数据频繁变化,这时可通过针对某表或某列运行 CREATE STATISTICS 语句来提高性能。

执行过程中,无论表大小如何,CREATE STATISTICS 语句都会更新现有列统计信息,除非表为空(在这种情况下不执行任何操作)。如果空表存在列统计信息,则 CREATE STATISTICS 语句不会更改这些信息。若要删除空表的列统计信息,则执行 DROP STATISTICS 语句。

运行 CREATE STATISTICS 的过程中会对表执行全面扫描。因此,请在经过慎重考虑后再执行 CREATE STATISTICS 语句。

如果删除了统计信息,建议您使用 CREATE STATISTICS 语句重新创建此统计信息。没有统计信息,优化程序可能会生成低效数据访问计划,从而导致数据库性能降低。

权限

必须具有 DBA 权限。

副作用

执行计划可能发生变化。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

下列语句更新 SalesOrderItems 表中 ProductID 列的列统计信息:

CREATE STATISTICS SalesOrderItems ( ProductID );