適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure 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