北京北大青鳥學校學術部提供:
接上篇:SQL Server中使用索引需要注意的問題(上)
4)索引對查詢有一這的優化,但由于改變一個表的內容,將會引起索引的變化。頻繁的對數據操作如insert,update,delete語句將導致系統花費較大的代價進行索引更新,引起整體性能的下降。一般來講,在對查詢性能的要求高于對數據維護性能要求時,應該盡量使用索引,有時在這種操作數據庫比較頻繁的某些極端情況下,可先刪除索引,再對數據庫表更新大量數據,最后再重建索引,新建立的索引總是比較好用。
索引在使用了長久的時候,就會產生很多的碎片,查詢的性能就會受到影響,這時候有兩種方法解決,一是利用DBCC INDEXDEFRAG整理索引碎片,還有就是利用DBCC DBREINDEX重建索引。(北京北大青鳥學校)
DBCC INDEXDEFRAG 命令是聯機操作,所以索引只有在該命令正在運行時才可用。而且可以在不丟失已完成工作的情況下中斷該操作。這種方法的缺點是在重新組織數據方面沒有聚集索引的除去/重新創建操作有效。
重新創建聚集索引將對數據進行重新組織,其結果是使數據頁填滿。填滿程度可以使用 FILLFACTOR 選項進行配置。這種方法的缺點是索引在除去/重新創建周期內為脫機狀態,并且操作屬原子級。如果中斷索引創建,則不會重新創建該索引。 (北京北大青鳥學校)
北京北大青鳥學校介紹:索引重建使用的方法:
語法 DBCC DBREINDEX ( [ ‘TableName’ [ , index_name [ , fillfactor ] ] ] )
參數 ‘TableName’
是要重建其指定的索引的表名。數據庫、所有者和表名必須符合標識符的規則。有關更多信息,請參見使用標識符。如果提供 database 或 owner 部分,則必須使用單引號 (‘)將整個 database.owner.table_name 括起來。如果只指定 table_name,則不需要單引號。
index_name 是要重建的索引名。索引名必須符合標識符的規則。如果未指定 index_name 或指定為 ‘ ‘,就要對表的所有索引進行重建。 (北京北大青鳥學校)
fillfactor 是創建索引時每個索引頁上要用于存儲數據的空間百分比。fillfactor替換起始填充因子以作為索引或任何其它重建的非聚集索引(因為已重建聚集索引)的新默認值。如果 fillfactor 為 0,DBCC DBREINDEX 在創建索引時將使用指定的起始fillfactor。
我們在查詢分析器中輸入如下的命令:
DBCC DBREINDEX (‘MyTable,’’,80)
這樣就會索引重建了。 (北京北大青鳥學校)想要了解北大青鳥好嗎?北大青鳥怎么樣?北大青鳥課程?北大青鳥學費多少等問題,歡迎您與通州北大青鳥網站在線老師聯系