共用方式為


sys.indexes (Transact-SQL)

針對每個表格式物件 (如資料表、檢視或資料表值函式) 索引或堆積,各包含一個資料列。

適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。

資料行名稱

資料類型

描述

object_id

int

這個索引所屬物件的識別碼。

name

sysname

索引的名稱。 name 只在物件內才是唯一的。

NULL = 堆積

index_id

int

索引的識別碼。 index_id 只在物件內才是唯一的

0 = 堆積

1 = 叢集索引

> 1 = 非叢集索引

類型

tinyint

索引的類型:

0 = 堆積

1 = 叢集

2 = 非叢集

3 = XML

4 = 空間

5 = 叢集資料行存放區索引

6 = 非叢集資料行存放區索引

7 = 非叢集雜湊索引

type_desc

nvarchar(60)

索引類型的描述:

HEAP

CLUSTERED

NONCLUSTERED

XML

SPATIAL

CLUSTERED COLUMNSTORE

適用於:SQL Server 2014 至 SQL Server 2014。

NONCLUSTERED COLUMNSTORE

適用於:SQL Server 2012 至 SQL Server 2014。

NONCLUSTERED HASH

只有記憶體最佳化的資料表才支援非叢集雜湊索引。 sys.hash_indexes 檢視表顯示目前雜湊索引和雜湊屬性。 如需詳細資訊,請參閱<sys.hash_indexes (Transact-SQL)>。

適用於:SQL Server 2014 至 SQL Server 2014。

is_unique

bit

1 = 索引是唯一的。

0 = 索引不是唯一的。

永遠是 0,表示叢集資料行存放區索引。

data_space_id

int

這個索引的資料空間識別碼。 資料空間是一個檔案群組或分割區結構描述。

0 = object_id 是資料表值函式或記憶體內部索引。

ignore_dup_key

bit

1 = IGNORE_DUP_KEY 是 ON。

0 = IGNORE_DUP_KEY 是 OFF。

is_primary_key

bit

1 = 索引是 PRIMARY KEY 條件約束的一部分。

永遠是 0,表示叢集資料行存放區索引。

is_unique_constraint

bit

1 = 索引是 UNIQUE 條件約束的一部分。

永遠是 0,表示叢集資料行存放區索引。

fill_factor

tinyint

> 0 = 當建立或重建索引時,所用的 FILLFACTOR 百分比。

0 = 預設值

永遠是 0,表示叢集資料行存放區索引。

is_padded

bit

1 = PADINDEX 是 ON。

0 = PADINDEX 是 OFF。

永遠是 0,表示叢集資料行存放區索引。

is_disabled

bit

1 = 索引已停用。

0 = 索引未停用。

is_hypothetical

bit

1 = 索引是假設的,無法直接當作資料存取路徑來使用。 假設的索引用來存放資料行層級的統計資料。

0 = 索引不是假設的。

allow_row_locks

bit

1 = 索引允許資料列鎖定。

0 = 索引不允許資料列鎖定。

永遠是 0,表示叢集資料行存放區索引。

allow_page_locks

bit

1 = 索引允許頁面鎖定。

0 = 索引不允許頁面鎖定。

永遠是 0,表示叢集資料行存放區索引。

has_filter

bit

1 = 索引有篩選,而且只包含滿足篩選定義的資料列。

0 = 索引沒有篩選。

filter_definition

nvarchar(max)

包含在已篩選之索引內的資料列子集運算式。

NULL 代表堆積或非篩選的索引。

權限

目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需詳細資訊,請參閱<中繼資料可見性組態>。

範例

下列範例會傳回 AdventureWorks2012 資料庫中 Production.Product 資料表的所有索引。

SELECT i.name AS index_name
    ,i.type_desc
    ,is_unique
    ,ds.type_desc AS filegroup_or_partition_scheme
    ,ds.name AS filegroup_or_partition_scheme_name
    ,ignore_dup_key
    ,is_primary_key
    ,is_unique_constraint
    ,fill_factor
    ,is_padded
    ,is_disabled
    ,allow_row_locks
    ,allow_page_locks
FROM sys.indexes AS i
INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id
WHERE is_hypothetical = 0 AND i.index_id <> 0 
AND i.object_id = OBJECT_ID('Production.Product');
GO

請參閱

參考

物件目錄檢視 (Transact-SQL)

目錄檢視 (Transact-SQL)

sys.index_columns (Transact-SQL)

sys.xml_indexes (Transact-SQL)

sys.objects (Transact-SQL)

sys.key_constraints (Transact-SQL)

sys.filegroups (Transact-SQL)

sys.partition_schemes (Transact-SQL)

概念

查詢 SQL Server 系統目錄 FAQ

In-Memory OLTP (記憶體中最佳化)