SQL Server 2000資料庫中如何重建索引

來源:互聯網
上載者:User

在資料庫中建立索引時,查詢所使用的索引資訊儲存在索引頁中。連續索引頁由從一個頁到下一個頁的指標連結在一起。當對資料的更改影響到索引時,索引中的資訊可能會在資料庫中分散開來。重建索引可以重新組織索引資料(對於叢集索引還包括表資料)的儲存,清除片段。這可通過減少獲得請求資料所需的頁讀取數來提高磁碟效能。

在 Microsoft® SQL Server™ 2000 中,如果要用一個步驟重新建立索引,而不想刪除舊索引並重新建立同一索引,則使用 CREATE INDEX 語句的 DROP_EXISTING 子句可以提高效率。這一優點既適用於叢集索引也適用於非叢集索引。

以刪除舊索引然後重新建立同一索引的方式重建叢集索引,是一種昂貴的方法,因為所有二級索引都使用聚集鍵指向資料行。如果只是刪除叢集索引然後重新建立,則會使所有非叢集索引都被刪除和重新建立兩次。一旦刪除叢集索引並再次重建該索引,就會發生這種情形。通過在一個步驟中重新建立索引,可以避免這一昂貴的做法。在一個步驟中重新建立索引時,會告訴 SQL Server 要重新組織現有索引,避免了刪除和重新建立非叢集索引這些不必要的工作。該方法的另一個重要優點是可以使用現有索引中的資料排序次序,從而避免了對資料重新排序。這對於叢集索引和非叢集索引都十分有用,可以顯著減少重建索引的成本。另外,通過使用 DBCC DBREINDEX 語句,SQL Server 還允許對一個表重建(在一個步驟中)一個或多個索引,而不必單獨重建每個索引。

DBCC DBREINDEX 也可用於重建執行 PRIMARY KEY 或 UNIQUE 約束的索引,而不必刪除並建立這些約束(因為對於為執行 PRIMARY KEY 或 UNIQUE 約束而建立的索引,必須先刪除該約束,然後才能刪除該索引)。例如,可能需要在 PRIMARY KEY 約束上重建一個索引,以便為該索引重建給定的填滿因數。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.