sp_statistics (Transact-SQL)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

返回针对指定的表或索引视图的所有索引和统计信息的列表。

Transact-SQL 语法约定

语法

sp_statistics
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @index_name = ] N'index_name' ]
    [ , [ @is_unique = ] 'is_unique' ]
    [ , [ @accuracy = ] 'accuracy' ]
[ ; ]

注意

Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

参数

[ @table_name = ] N'table_name'

指定用来返回目录信息的表。 @table_namesysname,没有默认值。 不支持通配符模式匹配。

[ @table_owner = ] N'table_owner'

用于返回目录信息的表的表所有者的名称。 @table_owner为 sysname,默认值为 NULL. 不支持通配符模式匹配。 如果未 owner 指定,则应用基础数据库管理系统(DBMS)的默认表可见性规则。

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

[ @table_qualifier = ] N'table_qualifier'

表限定符的名称。 @table_qualifier为 sysname,默认值为 NULL. 各种 DBMS 产品支持表的三部分命名(<qualifier>.<owner>.<name>)。 在 SQL Server 中,此参数表示数据库名称。 在某些产品中,该列表示表所在的数据库环境的服务器名。

[ @index_name = ] N'index_name'

索引名称。 @index_name为 sysname,默认值为 %. 支持通配符模式匹配。

[ @is_unique = ] 'is_unique'

是否只返回唯一索引(如果 Y)。 @is_unique为 char(1),默认值为空字符串。

[ @accuracy = ] 'accuracy'

统计信息的基数和页面准确性级别。 @accuracy为 char(1),默认值为 Q. 指定 E 以确保更新统计信息,以便基数和页面准确。

  • ESQL_ENSURE) 要求司机无条件地检索统计信息。

  • QSQL_QUICK) 要求驱动程序检索基数和页面,前提是它们可从服务器随时可用。 在这种情况下,驱动程序不确保这些值是最新的。 写入 Open Group 标准的应用程序始终从 ODBC 3.x 兼容驱动程序获取 SQL_QUICK 行为。

结果集

列名称 数据类型 描述
TABLE_QUALIFIER sysname 表限定符名称。 此列可以是 NULL
TABLE_OWNER sysname 表所有者名称。 该列始终返回值。
TABLE_NAME sysname 表名。 该列始终返回值。
NON_UNIQUE smallint 不可为 Null。

0 = 唯一
1 = 不唯一
INDEX_QUALIFIER sysname 索引所有者名称。 某些 DBMS 产品允许表所有者之外的用户创建索引。 在 SQL Server 中,此列始终与 TABLE_NAME.
INDEX_NAME sysname 索引的名称。 该列始终返回值。
TYPE smallint 此列始终返回值:

0 = 表的统计信息
1 = Clustered
2 = 哈希
3 = Nonclustered
SEQ_IN_INDEX smallint 列在索引中的位置。
COLUMN_NAME sysname 返回的每个列的 TABLE_NAME 列名。 该列始终返回值。
COLLATION char(1) 在排序规则中使用的顺序。 可以是:

A = 升序
D = 降序
NULL = 不适用
CARDINALITY int 表中的行数或索引中的唯一值。
PAGES int 要存储索引或表的页数。
FILTER_CONDITION varchar(128) SQL Server 不返回值。

返回代码值

无。

注解

结果集中的索引按列 NON_UNIQUETYPEINDEX_NAMESEQ_IN_INDEX列的升序显示。

聚集索引类型引用一个索引,该索引中的表数据按索引的顺序存储。 此值对应于 SQL Server 聚集索引。

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

系统 sp_statistics 存储过程等效于 SQLStatistics ODBC。 返回的结果按 NON_UNIQUE、、 INDEX_NAMETYPEINDEX_QUALIFIER和 。SEQ_IN_INDEX 有关详细信息,请参阅 ODBC 参考

权限

需要对架构的 SELECT 权限。

示例:Azure Synapse Analytics 和分析平台系统(PDW)

以下示例从AdventureWorks示例数据库返回有关DimEmployee表的信息。

EXEC sp_statistics DimEmployee;