報(bào)告和更正 sysindexes 表的不正確內(nèi)容,該內(nèi)容可能會(huì)導(dǎo)致通過(guò) sp_spaceused 系統(tǒng)存儲(chǔ)過(guò)程產(chǎn)生不正確的空間使用報(bào)表。
DBCC UPDATEUSAGE
( { 'database_name' | 0 }
[ , { 'table_name' | 'view_name' }
[ , { index_id | 'index_name' } ] ]
)
[ WITH [ COUNT_ROWS ] [ , NO_INFOMSGS ]
]
'database_name' | 0
是要對(duì)其空間使用統(tǒng)計(jì)信息進(jìn)行報(bào)告和更正的數(shù)據(jù)庫(kù)名稱。數(shù)據(jù)庫(kù)名稱必須符合標(biāo)識(shí)符的規(guī)則。有關(guān)更多信息,請(qǐng)參見(jiàn)使用標(biāo)識(shí)符。如果指定 0,則使用當(dāng)前數(shù)據(jù)庫(kù)。
'table_name' | 'view_name'
是要對(duì)其空間使用統(tǒng)計(jì)信息進(jìn)行報(bào)告和更正的表名或索引名。表名和視圖名稱必須符合標(biāo)識(shí)符規(guī)則。
index_id | 'index_name'
是要使用的索引標(biāo)識(shí) (ID) 號(hào)或索引名。如果未指定,該語(yǔ)句就對(duì)指定表或索引的所有索引進(jìn)行處理。
COUNT_ROWS
指定使用表或視圖中的行數(shù)計(jì)數(shù)來(lái)更新 sysindexes 的 rows 列。這只適用于其 indid 為 0 或 1 的 sysindexes 行。該選項(xiàng)可能會(huì)影響大表和索引視圖的性能。
NO_INFOMSGS
禁止顯示所有信息性消息。
DBCC UPDATEUSAGE 對(duì)表和聚集索引中 sysindexes 表的 rows、used、reserved 和 dpages 列進(jìn)行更正。不對(duì)非聚集索引的大小信息進(jìn)行維護(hù)。
如果 sysindexes 中沒(méi)有不正確的內(nèi)容,DBCC UPDATEUSAGE 則不返回?cái)?shù)據(jù)。如果發(fā)現(xiàn)不正確的內(nèi)容,并對(duì)其進(jìn)行更正,同時(shí)沒(méi)有使用 WITH NO_INFOMSGS 選項(xiàng),UPDATEUSAGE 就會(huì)返回 sysindexes 中所更新的行和列。
使用 UPDATEUSAGE 以與空間使用計(jì)數(shù)器同步。DBCC UPDATEUSAGE 在大表或大數(shù)據(jù)庫(kù)上運(yùn)行可能會(huì)需要一些時(shí)間,所以通常只在懷疑 sp_spaceused 所返回的值不正確時(shí)使用。返回表或索引的空間信息之前,sp_spaceused 接受可選參數(shù)以運(yùn)行 DBCC UPDATEUSAGE。
DBCC UPDATEUSAGE 返回 Northwind 數(shù)據(jù)庫(kù)的以下結(jié)果集(值可能會(huì)有變化):
DBCC UPDATEUSAGE: sysindexes row updated for table 'Orders' (index ID 4):
USED pages: Changed from (2) to (4) pages.
RSVD pages: Changed from (2) to (4) pages.
DBCC UPDATEUSAGE: sysindexes row updated for table 'Orders' (index ID 5):
USED pages: Changed from (2) to (4) pages.
RSVD pages: Changed from (2) to (4) pages.
'...'
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
DBCC UPDATEUSAGE 權(quán)限默認(rèn)授予 sysadmin 固定服務(wù)器角色或 db_owner 固定數(shù)據(jù)庫(kù)角色的成員且不可轉(zhuǎn)讓。
下例為數(shù)據(jù)庫(kù)名稱指定 0,而 Microsoft® SQL Server™ 報(bào)告有關(guān)當(dāng)前數(shù)據(jù)庫(kù)的信息。
DBCC UPDATEUSAGE (0)
GO
下例將 pubs 指定為數(shù)據(jù)庫(kù)名稱,并禁止顯示所有信息性消息。
DBCC UPDATEUSAGE ('pubs') WITH NO_INFOMSGS
GO
下例報(bào)告有關(guān) authors 表的信息。
DBCC UPDATEUSAGE ('pubs','authors')
GO
下例使用索引名 UPKCL_auidind。
DBCC UPDATEUSAGE ('pubs', 'authors', 'UPKCL_auidind')相關(guān)文章