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