sys.indexes (Transact-SQL)
適用於:Microsoft Fabric 中的 SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) SQL Database
包含表格式物件的每個索引或堆積的數據列,例如數據表、檢視表或數據表值函式。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
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 = 叢集資料行存放區索引。 適用於:SQL Server 2014 (12.x) 和更新版本。 6 = 非叢集資料行存放區索引。 適用於:SQL Server 2012 (11.x) 和更新版本。 7 = 非叢集哈希索引。 適用於:SQL Server 2014 (12.x) 和更新版本。 |
type_desc | nvarchar(60) | 索引類型的描述: HEAP CLUSTERED NONCLUSTERED XML 空間 CLUSTERED COLUMNSTORE - 適用於:SQL Server 2014 (12.x) 和更新版本。 NONCLUSTERED COLUMNSTORE - 適用於:SQL Server 2012 (11.x) 和更新版本。 NONCLUSTERED HASH :只有記憶體優化數據表才支援 NONCLUSTERED HASH 索引。 檢視 sys.hash_indexes 會顯示目前的哈希索引和哈希屬性。 如需詳細資訊,請參閱 sys.hash_indexes (Transact-SQL) 。 適用於:SQL Server 2014 (12.x) 和更新版本。 |
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 = Index 是 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。 |
compression_delay | int | > 0 = 以分鐘為單位指定的數據行存放區索引壓縮延遲。 NULL = 資料行存放區索引資料列群組壓縮延遲會自動管理。 |
suppress_dup_key_messages | bit | 1 = 索引設定為在索引重建作業期間隱藏重複的索引鍵訊息。 0 = 索引未設定為在索引重建作業期間隱藏重複的索引鍵訊息。 適用於:SQL Server(從 SQL Server 2017 (14.x)開始)、Azure SQL 資料庫 和 Azure SQL 受控執行個體 |
auto_created | bit | 1 = 索引是由自動調整所建立。 0 = 使用者已建立索引。 適用於:Azure SQL Database |
optimize_for_sequential_key | bit | 1 = 索引已啟用最後一頁插入優化。 0 = 預設值。 索引已停用最後一頁插入優化。 適用於:SQL Server(從 SQL Server 2019 (15.x)開始)、Azure SQL 資料庫 和 Azure SQL 受控執行個體 |
權限
目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration。
範例
下列範例會傳回 AdventureWorks2022 資料庫中數據表 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 系統目錄常見問題
In-Memory OLTP (記憶體中最佳化)