共用方式為


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)