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 和更早版本中,資料庫引擎 維護數據列層級修改計數器。 這類計數器現在會保留在數據行層級。 因此, 會計算 rowmodctr 數據行,併產生與舊版結果類似的結果,但並不精確。
如果您使用rowmodctr中的值來判斷何時更新統計數據,請考慮下列解決方案:
不執行任何動作。 新的 rowmodctr 值經常可協助您判斷何時更新統計數據,因為行為相當接近舊版的結果。
使用 AUTO_UPDATE_STATISTICS。 如需詳細資訊, 請參閱統計數據。
使用時間限制來判斷何時更新統計數據。 例如,每小時、每天或每周。
使用應用層級信息來判斷何時更新統計數據。 例如,每次識別數據行的最大值變更超過 10,000 次,或每次執行大量插入作業時。
另請參閱
目錄檢視 (Transact-SQL)
將系統資料表對應至系統檢視 (Transact-SQL)
sys.indexes (Transact-SQL)