共用方式為


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_unitssys.partitions 目錄檢視,或 sys.dm_db_partition_stats 動態管理檢視。

在 SQL Server 2000 和更早版本中,資料庫引擎 維護數據列層級修改計數器。 這類計數器現在會保留在數據行層級。 因此, 會計算 rowmodctr 數據行,併產生與舊版結果類似的結果,但並不精確。

如果您使用rowmodctr中的值來判斷何時更新統計數據,請考慮下列解決方案:

  • 不執行任何動作。 新的 rowmodctr 值經常可協助您判斷何時更新統計數據,因為行為相當接近舊版的結果。

  • 使用 AUTO_UPDATE_STATISTICS。 如需詳細資訊, 請參閱統計數據

  • 使用時間限制來判斷何時更新統計數據。 例如,每小時、每天或每周。

  • 使用應用層級信息來判斷何時更新統計數據。 例如,每次識別數據行的最大值變更超過 10,000 次,或每次執行大量插入作業時。

另請參閱

目錄檢視 (Transact-SQL)
將系統資料表對應至系統檢視 (Transact-SQL)
sys.indexes (Transact-SQL)