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