SQL Server 2000重建索引的實(shí)際操作流程
以下的文章主要向大家介紹的是SQL Server 2000重建索引的實(shí)際操作流程,以及對(duì)實(shí)際操作中容易出現(xiàn)的錯(cuò)誤的描述,我們大家都知道在數(shù)據(jù)庫(kù)中創(chuàng)建索引的實(shí)際操作過(guò)程中,查詢所使用的索引信息存儲(chǔ)在索引頁(yè)中。
連續(xù)索引頁(yè)由從一個(gè)頁(yè)到下一個(gè)頁(yè)的指針鏈接在一起。當(dāng)對(duì)數(shù)據(jù)的更改影響到索引時(shí),索引中的信息可能會(huì)在數(shù)據(jù)庫(kù)中分散開(kāi)來(lái)。SQL Server 2000重建索引可以重新組織索引數(shù)據(jù)(對(duì)于聚集索引還包括表數(shù)據(jù))的存儲(chǔ),清除碎片。這可通過(guò)減少獲得請(qǐng)求數(shù)據(jù)所需的頁(yè)讀取數(shù)來(lái)提高磁盤性能。
在 Microsoft® SQL Server™ 2000 中,如果要用一個(gè)步驟重新創(chuàng)建索引,而不想刪除舊索引并重新創(chuàng)建同一索引,則使用 CREATE INDEX 語(yǔ)句的 DROP_EXISTING 子句可以提高效率。這一優(yōu)點(diǎn)既適用于聚集索引也適用于非聚集索引。
以刪除舊索引然后重新創(chuàng)建同一索引的方式重建聚集索引,是一種昂貴的方法,因?yàn)樗卸?jí)索引都使用聚集鍵指向數(shù)據(jù)行。如果只是刪除聚集索引然后重新創(chuàng)建,則會(huì)使所有非聚集索引都被刪除和重新創(chuàng)建兩次。
一旦刪除聚集索引并再次重建該索引,就會(huì)發(fā)生這種情形。通過(guò)在一個(gè)步驟中重新創(chuàng)建索引,可以避免這一昂貴的做法。在一個(gè)步驟中重新創(chuàng)建索引時(shí),會(huì)告訴 SQL Server 要重新組織現(xiàn)有索引,避免了刪除和重新創(chuàng)建非聚集索引這些不必要的工作。
該方法的另一個(gè)重要優(yōu)點(diǎn)是可以使用現(xiàn)有索引中的數(shù)據(jù)排序次序,從而避免了對(duì)數(shù)據(jù)重新排序。這對(duì)于聚集索引和非聚集索引都十分有用,可以顯著減少SQL Server 2000重建索引的成本。另外,通過(guò)使用 DBCC DBREINDEX 語(yǔ)句,SQL Server 還允許對(duì)一個(gè)表重建(在一個(gè)步驟中)一個(gè)或多個(gè)索引,而不必單獨(dú)重建每個(gè)索引。
DBCC DBREINDEX 也可用于重建執(zhí)行 PRIMARY KEY 或 UNIQUE 約束的索引,而不必刪除并創(chuàng)建這些約束(因?yàn)閷?duì)于為執(zhí)行 PRIMARY KEY 或 UNIQUE 約束而創(chuàng)建的索引,必須先刪除該約束,然后才能刪除該索引)。例如,可能需要在 PRIMARY KEY 約束上重建一個(gè)索引,以便為該索引重建給定的填充因子。
以上的相關(guān)內(nèi)容就是對(duì)SQL Server 2000重建索引的介紹,望你能有所收獲。
【編輯推薦】