共用方式為


sys.indexes (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 資料庫

包含表格式物件的每個索引或堆積的數據列,例如數據表、檢視表或數據表值函式。

欄位名稱 數據類型 Description
object_id int 這個索引所屬之對象的標識碼。
name sysname 索引的名稱。 name 僅在物件內是唯一的。

NULL = 堆積
index_id int 索引的識別碼。 index_id僅在物件內是唯一的。

0 = 堆積
1 = 叢集索引
> 1 = 非叢集索引
type tinyint 索引的類型:

0 = 堆積
1 = 叢集資料列存放區 (B 型樹狀結構)
2 = 非叢集資料列存放區 (B 型樹狀結構)
3 = XML
4 = 空間
5 = 叢集資料行存放區索引 2
6 = 非叢集資料行存放區索引 1
7 = 非叢集雜湊索引 2
9 = JSON 5
type_desc nvarchar(60) 索引類型的描述:

-堆
- 叢集
- 非叢集
- XML
-空間的
- 叢集資料行存放區 2
- 非叢集資料行存放區 1
- 非叢集雜湊 2、8
- JSON 5
is_unique bit 1 = 索引是唯一的。
0 = 索引不是唯一的。

叢集數據行存放區索引一律為 0。
data_space_id int 這個索引的數據空間標識碼。 數據空間是檔案群組或分割區配置。

0 = object_id 是表值函數或記憶體內索引。
ignore_dup_key bit 1 = IGNORE_DUP_KEY 開啟。
0 = IGNORE_DUP_KEY為 OFF。
is_primary_key bit 1 = 索引是 PRIMARY KEY 條件約束的一部分。

叢集數據行存放區索引一律為 0。
is_unique_constraint bit 1 = Index 是 UNIQUE 條件約束的一部分。

叢集數據行存放區索引一律為 0。
fill_factor tinyint > 0 = 建立或重建索引時所使用的 FILLFACTOR 百分比。
0 = 預設值

叢集數據行存放區索引一律為 0。
is_padded bit 1 = PADINDEX 開啟。
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 表示資料堆、未篩選的索引或資料表的權限不足。
compression_delay int > 0 = 以分鐘為單位指定的數據行存放區索引壓縮延遲。

NULL = 資料行存放區索引資料列群組壓縮延遲會自動管理。
suppress_dup_key_messages 3, 6, 7 bit 1 = 索引設定為在索引重建作業期間隱藏重複的索引鍵訊息。

0 = 索引未設定為在索引重建作業期間隱藏重複的索引鍵訊息。
auto_created 6 bit 1 = 索引是由自動調整所建立。
0 = 使用者已建立索引。
optimize_for_sequential_key 4, 6, 7 bit 1 = 索引已啟用最後一頁插入優化。
0 = 預設值。 索引已停用最後一頁插入優化。

1適用於: SQL Server 2012 (11.x) 和更新版本。

2適用於: SQL Server 2014 (12.x) 和更新版本。

3適用於: SQL Server 2017 (14.x) 和更新版本。

4適用於: SQL Server 2019 (15.x) 和更新版本。

5適用於: SQL Server 2025(17.x)及更新版本。

6適用於: Azure SQL 資料庫。

7適用於: Azure SQL 受控執行個體。

只有記憶體最佳化資料表才支援 8NONCLUSTERED HASH 個索引。 檢視 sys.hash_indexes 會顯示目前的哈希索引和哈希屬性。 如需詳細資訊,請參閱 sys.hash_indexes

Permissions

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

Examples

以下範例回傳 AdventureWorks2025 資料庫中該資料表 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