sys.sysindexes (Transact-SQL)
適用於:SQL Server
針對目前資料庫中的每個索引和資料表,各包含一個資料列。 此檢視不支援 XML 索引。 此檢視中不支援資料分割資料表和索引;請改用 sys.indexes 目錄檢視。
重要
此 SQL Server 2000 系統資料表隨附為回溯相容性的檢視。 建議您改用目前的 SQL Server 系統檢視。 若要尋找對等的系統檢視或檢視,請參閱 將系統資料表對應至系統檢視表(Transact-SQL)。 未來的 Microsoft SQL Server 版本將移除這項功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
id | int | 索引所屬之資料表的識別碼。 |
status | int | 系統狀態資訊。 僅供參考之用。 不支援。 我們無法保證未來的相容性。 |
first | binary(6) | 第一個或根頁面的指標。 indid = 0 時 未使用。 Null = 在 indid > 1 時 分割索引。 Null = 當 indid 為 0 或 1 時 ,會分割資料表。 |
indid | smallint | 索引的識別碼: 0 = 堆積 1 = 叢集索引 >1 = 非叢集索引 |
根 | binary(6) | 針對 indid > = 1, root 是根頁面的指標。 indid = 0 時 未使用。 Null = 在 indid > 1 時 分割索引。 Null = 當 indid 為 0 或 1 時 ,會分割資料表。 |
minlen | smallint | 資料列的大小下限。 |
keycnt | smallint | 索引鍵數目。 |
groupid | smallint | 建立物件的檔案群組識別碼。 Null = 在 indid > 1 時 分割索引。 Null = 當 indid 為 0 或 1 時 ,會分割資料表。 |
dpages | int | 針對 indid = 0 或 indid = 1, dpages 是所使用的資料頁計數。 針對 indid > 1, dpages 是所使用的索引頁計數。 0 = indid > 1 時 會分割索引。 0 = indid 為 0 或 1 時 ,會分割資料表。 如果發生資料列溢位,則不會產生精確的結果。 |
保留 | int | 針對 indid = 0 或 indid = 1, 保留 是配置給所有索引和資料表資料的頁面計數。 針對 indid > 1, 保留 是配置給索引的頁面計數。 0 = indid > 1 時 會分割索引。 0 = indid 為 0 或 1 時 ,會分割資料表。 如果發生資料列溢位,則不會產生精確的結果。 |
使用 | int | 針對 indid = 0 或 indid = 1, 使用的 是用於所有索引和資料表資料的總頁數。 針對 indid > 1, used 是索引所使用的頁面計數。 0 = indid > 1 時 會分割索引。 0 = indid 為 0 或 1 時 ,會分割資料表。 如果發生資料列溢位,則不會產生精確的結果。 |
rowcnt | bigint | 以 indid = 0 和 indid = 1 為基礎的 資料層級資料列計數。 0 = indid > 1 時 會分割索引。 0 = indid 為 0 或 1 時 ,會分割資料表。 |
rowmodctr | int | 計算上次更新資料表統計資料之後,插入、刪除或更新的資料列總數。 0 = indid > 1 時 會分割索引。 0 = indid 為 0 或 1 時 ,會分割資料表。 在 SQL Server 2005 (9.x) 和更新版本中, rowmodctr 與舊版不相容。 如需詳細資訊,請參閱<備註>。 |
reserved3 | int | 傳回 0。 僅供參考之用。 不支援。 我們無法保證未來的相容性。 |
reserved4 | int | 傳回 0。 僅供參考之用。 不支援。 我們無法保證未來的相容性。 |
xmaxlen | smallint | 資料列的大小上限 |
maxirow | smallint | 非分葉索引列的大小上限。 在 SQL Server 2005 (9.x) 和更新版本中, maxirow 與舊版不相容。 |
OrigFillFactor | tinyint | 建立索引時所使用的原始填滿因數值。 此值不會維護;不過,如果您必須重新建立索引,且不記得使用的填滿因數值,可能會很有説明。 |
StatVersion | tinyint | 傳回 0。 僅供參考之用。 不支援。 我們無法保證未來的相容性。 |
reserved2 | int | 傳回 0。 僅供參考之用。 不支援。 我們無法保證未來的相容性。 |
FirstIAM | binary(6) | Null = 索引已分割。 僅供參考之用。 不支援。 我們無法保證未來的相容性。 |
impid | smallint | 索引實作旗標。 傳回 0。 僅供參考之用。 不支援。 我們無法保證未來的相容性。 |
lockflags | smallint | 用來限制索引的已考慮鎖定資料細微性。 例如,若要將鎖定成本降到最低,基本上是唯讀的查閱表格可以設定為只執行資料表層級鎖定。 |
pgmodctr | int | 傳回 0。 僅供參考之用。 不支援。 我們無法保證未來的相容性。 |
鑰匙 | Varbinary(816) | 組成索引鍵之資料行的資料行識別碼清單。 傳回 NULL。 若要顯示索引鍵資料行,請使用 sys.sysindexkeys 。 |
name | sysname | 索引或統計資料的名稱。 indid = 0 時傳 回 Null。 修改您的應用程式以尋找 Null 堆積名稱。 |
statblob | image | 統計資料二進位大型物件 (BLOB)。 傳回 NULL。 |
maxlen | int | 僅供參考之用。 不支援。 我們無法保證未來的相容性。 |
rows | int | 以 indid = 0 和 indid = 1 為基礎的 資料層級資料列計數,而且 indid > 1 會重複 此值。 |
備註
不應使用定義為保留的資料行。
如果資料表或索引包含ROW_OVERFLOW配置單位中的資料,資料行 dpage 、 保留 及 使用 將不會傳回精確的結果。 此外,會個別追蹤每個索引的頁面計數,而且不會匯總基表。 若要檢視頁面計數,請使用 sys.allocation_units 或 sys.partitions 目錄檢視,或 sys.dm_db_partition_stats 動態管理檢視。
在 SQL Server 2000 和更早版本中,Database Engine 會維護資料列層級修改計數器。 這類計數器現在會保留在資料行層級。 因此, 會計算 rowmodctr 資料行,並產生與舊版結果類似的結果,但並不精確。
如果您使用 rowmodctr 中的 值來判斷何時更新統計資料,請考慮下列解決方案:
不執行任何動作。 新的 rowmodctr 值經常可協助您判斷何時更新統計資料,因為行為相當接近舊版的結果。
使用 AUTO_UPDATE_STATISTICS。 如需詳細資訊, 請參閱統計資料 。
使用時間限制來判斷何時更新統計資料。 例如,每小時、每天或每週。
使用應用層級資訊來判斷何時更新統計資料。 例如,每次識別資料行的 最大值變更超過 10,000 次,或每次執行大量插入作業時。
另請參閱
目錄檢視 (Transact-SQL)
將系統資料表對應至系統檢視 (Transact-SQL)
sys.indexes (Transact-SQL)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應