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_index_density 系统过程

报告索引中碎片和分布偏差的数量信息。

语法
sa_index_density( 
  [ tbl_name
  [, owner_name ] ]
)
参数
  • tbl_name   使用此可选的 CHAR(128) 参数指定表名。

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

结果集
列名 数据类型 说明
TableName CHAR(128) 表的名称。
TableId UNSIGNED INTEGER 表 ID。
IndexName CHAR(128) 索引的名称。
IndexId UNSIGNED INTEGER 索引 ID。此列包含以下值之一:
  • 0   对于主键

  • SYSFKEY.foreign_key_id   对于外键

  • SYSIDX.index_id   对于所有其它索引

IndexType CHAR(4) 索引类型。此列包含以下值之一:
  • PKEY   对于主键

  • FKEY   对于外键

  • UI   对于唯一索引

  • UC   对于唯一约束

  • NUI   对于非唯一索引

LeafPages UNSIGNED INTEGER 叶页的数目。
Density NUMERIC(8,6) 介于 0 和 1 之间的分数,提供每个索引页的平均占用程度的指示。
Skew NUMERIC(8.6) 一个数字,用于指示索引中的不均衡级别。值 1 表示完全均衡的索引。数值越大,分布偏差的程度越大。
注释

sa_index_density 系统过程用于获取索引中碎片和分布偏差程度的信息。对于有较多叶页的索引,理想的情况是密度值较高、分布偏差值较低。

索引密度反映索引页的平均丰满度,以百分比表示。密度为 0.7 表示平均有 70% 的索引页已填满索引数据。索引分布偏差反映了与平均密度的典型差值。进行选择性估计时,分布偏差量对于优化程序十分重要。

当叶页数较低时,无需考虑密度和分布偏差值。只有叶页数较高时,密度和分布偏差值才变得重要。当叶页数较高时,较低的密度值表示存在碎片,而较高的分布偏差值则表示索引分布不均衡。二者都有可能是导致性能低下的因素。通过执行 REORGANIZE TABLE 语句即可解决这两个问题。请参见REORGANIZE TABLE 语句

如果调用此过程时未指定表,则返回数据库中所有表上的所有索引信息。

还可以使用 [应用程序分析向导] 确定索引密度和分布偏差是否处于可以接受的级别。请参见应用程序分析向导

权限

需要 DBA 权限

副作用

另请参见
示例

以下示例使用 sa_index_density 系统过程返回一个结果集,汇总了数据库中所有索引的碎片和分布偏差的数量。

CALL sa_index_density( );