获取索引的属性值(深度等)

SQL Server admin 111℃ 0评论

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=2171

 

INDEXPROPERTY (Transact-SQL)

根据指定的表标识号、索引或统计信息名称以及属性名称,返回已命名的索引或统计信息属性值。 对于 XML 索引,返回 NULL。

Transact-SQL 语法约定

语法

INDEXPROPERTY ( object_ID , index_or_statistics_name , property )

参数

object_ID

一个表达式,包含要为其提供索引属性信息的表或索引视图的对象标识号。 object_ID 的数据类型为 int

index_or_statistics_name

一个表达式,包含要为其返回属性信息的索引或统计信息的名称。 index_or_statistics_name 的数据类型为 nvarchar(128)

property

一个表达式,包含要返回的数据库属性的名称。 property 的数据类型为 varchar(128),它可以为以下值之一。

 注意
除非另外注明,否则出现以下情况时将返回 NULL:property 不是有效的属性名称;object_ID 不是有效的对象 ID;object_ID不是指定属性支持的对象类型;调用方无权查看对象的元数据。
属性 说明
IndexDepth 索引的深度。 索引级别数。

NULL = XML 索引或输入无效。

IndexFillFactor 创建索引或最后重新生成索引时使用的填充因子值。 填充因子
IndexID 指定表或索引视图上索引的索引 ID。 索引 ID
IsAutoStatistics 统计信息是由 ALTER DATABASE 的 AUTO_CREATE_STATISTICS 选项生成的。 1 = True

0 = False 或 XML 索引。

IsClustered 索引是聚集的。 1 = True

0 = False 或 XML 索引。

IsDisabled 索引被禁用。 1 = True

0 = False

NULL = 输入无效。

IsFulltextKey 索引是表的全文和语义索引键。 1 = True

0 = False 或 XML 索引。

NULL = 输入无效。

IsHypothetical 索引是假设的,不能直接用作数据访问路径。 假设索引包含列级统计信息,由数据库引擎优化顾问维护和使用。 1 = True

0 = False 或 XML 索引

NULL = 输入无效。

IsPadIndex 索引指定每个内部节点上将要保持空闲的空间。 1 = True

0 = False 或 XML 索引。

IsPageLockDisallowed 通过 ALTER INDEX 的 ALLOW_PAGE_LOCKS 选项设置的页锁定值。 1 = 不允许页锁定。

0 = 允许页锁定。

NULL = 输入无效。

IsRowLockDisallowed 通过 ALTER INDEX 的 ALLOW_ROW_LOCKS 选项设置的行锁定值。 1 = 不允许行锁定。

0 = 允许行锁定。

NULL = 输入无效。

IsStatistics index_or_statistics_name 是通过 CREATE STATISTICS 语句或 ALTER DATABASE 的 AUTO_CREATE_STATISTICS 选项创建的统计信息。 1 = True

0 = False 或 XML 索引。

IsUnique 索引是唯一的。 1 = True

0 = False 或 XML 索引。

IsColumnstore 索引为 xVelocity 内存优化的列存储索引。 1 = True

0 = False

返回类型

int

异常

出现错误时或调用方没有查看对象的权限时,将返回 NULL。

用户只能查看符合如下条件的安全对象的元数据:该安全对象为该用户所有,或已授予该用户对该安全对象的权限。 也就是说,如果用户对该对象没有任何权限,则那些会生成元数据的内置函数(如 INDEXPROPERTY)可能返回 NULL。 有关详细信息,请参阅 元数据可见性配置

示例

以下示例针对 Employee 表的 PK_Employee_BusinessEntityID 索引返回 IsClusteredIndexDepth 和 IndexFillFactor 属性的值。

Transact-SQL

USE AdventureWorks2012;

GO

SELECT

INDEXPROPERTY(OBJECT_ID(‘HumanResources.Employee’),

‘PK_Employee_BusinessEntityID’,’IsClustered’)AS [Is Clustered],

INDEXPROPERTY(OBJECT_ID(‘HumanResources.Employee’),

‘PK_Employee_BusinessEntityID’,’IndexDepth’) AS [Index Depth],

INDEXPROPERTY(OBJECT_ID(‘HumanResources.Employee’),

‘PK_Employee_BusinessEntityID’,’IndexFillFactor’) AS [Fill Factor];

GO

下面是结果集:

Is Clustered Index Depth Fill Factor

———— ———– ———–

1            2           0

 

(1 row(s) affected)

请参阅

参考

CREATE INDEX (Transact-SQL)

sys.indexes (Transact-SQL)

sys.index_columns (Transact-SQL)

sys.stats (Transact-SQL)

sys.stats_columns (Transact-SQL)

概念

统计信息

 

 

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=2171

转载请注明:森大科技官方博客 » 获取索引的属性值(深度等)

喜欢 (1)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址