Transact-SQL 参考

sp_statistics

返回指定的表或索引视图上的所有索引以及统计的列表。

语法

sp_statistics [@table_name =] 'table_name'
    
[,[@table_owner =] 'owner']
    [,[@table_qualifier =] 'qualifier']
    [,[@index_name =] 'index_name']
    [,[@is_unique =] 'is_unique']
    [,[@accuracy =] 'accuracy']

参数

[@table_name =] 'name'

指定用于返回目录信息的表。table_name 的数据类型是 sysname,没有默认设置。不支持通配符模式匹配。

[@table_owner =] 'owner'

是用于返回目录信息的表所有者名称。table_owner 的数据类型是 sysname,默认设置为 NULL。不支持通配符模式匹配。如果未指定 owner,则应用基础 DBMS 的默认表可视性规则。

在 Microsoft® SQL Server™ 中,如果当前用户拥有带指定名称的表,则返回该表的索引。如果未指定 owner 且当前用户不拥有带指定 name 的表,则该过程查找由数据库所有者拥有的带指定 name 的表。如果存在这样的表,则返回该表的索引。

[@table_qualifier =] 'qualifier'

是表限定符的名称。qualifier 的数据类型为 sysname,默认设置为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,该参数表示数据库名。在某些产品中,该列表示表所在数据库环境的服务器名。

[@index_name =] 'index_name'

是索引名。index_name 的数据类型是 sysname,默认设置为 %。

[@is_unique =] 'is_unique'

表示是否只返回唯一索引(如果是 Y)。is_unique 的数据类型是 char(1),默认设置为 N。

[@accuracy =] 'accuracy'

是统计的基数和页准确度级别。accuracy 的数据类型为 char(1),默认设置为 Q。指定 E 可确保更新统计以使基数和页都是准确的。

结果集
列名 数据类型 描述
TABLE_QUALIFIER sysname 表限定符名称。该字段可以为 NULL。
TABLE_OWNER sysname 表所有者名称。该字段始终返回值。
TABLE_NAME sysname 表名。该字段始终返回值。
NON_UNIQUE smallint NOT NULL。
0 = 唯一
1 = 不唯一
INDEX_QUALIFIER sysname 索引所有者名称。某些 DBMS 产品允许表所有者以外的用户创建索引。在 SQL Server 中,该列始终和 TABLE_NAME 相同。
INDEX_NAME sysname 是索引名。该字段始终返回值。
TYPE smallint 该字段始终返回值。SQL Server 返回 0、1、2 或 3:
0 = 表的统计
1 = 聚集
2 = 哈希
3 = 其它
SEQ_IN_INDEX smallint 列在索引内的位置。
COLUMN_NAME sysname 返回的 TABLE_NAME 中每列的列名。该字段始终返回值。
COLLATION char(1) 用于排序规则的次序。SQL Server 始终返回 A。可以是:
A = 升序
D = 降序
NULL = 不适用
CARDINALITY int 表内的行数或索引内的唯一值个数。
PAGES int 存储索引或表的页数。
FILTER_CONDITION varchar(128) SQL Server 不返回值。

返回代码值

注释

结果集内的索引按 NON_UNIQUETYPEINDEX_NAME SEQ_IN_INDEX 列排序的升序出现。

聚集索引类型引用按该索引的次序存储表数据的索引。这相当于 SQL Server 聚集索引。

哈希索引类型接受完全匹配或范围搜索,但模式匹配搜索不使用索引。

在 ODBC 中,sp_statistics SQLStatistics 等效。返回的结果按 NON_UNIQUETYPEINDEX_QUALIFIERINDEX_NAME SEQ_IN_INDEX 排序。

权限

执行权限默认授予 public 角色。

请参见

系统存储过程