Navicat 使用教程:如何確定何時(shí)該在Oracle中重建索引
Navicat for Oracle通過簡化的工作環(huán)境提高了Oracle開發(fā)人員和管理員的效率和生產(chǎn)力。優(yōu)化您的Oracle開發(fā)-快速,安全地創(chuàng)建,組織,訪問和共享信息。Navicat for Oracle與Amazon RDS和Oracle Cloud等云數(shù)據(jù)庫兼容,并支持本地/遠(yuǎn)程Oracle服務(wù)器。
點(diǎn)擊下載Navicat for Oracle正式版
每隔一段時(shí)間,我們就需要在Oracle中重建索引,因?yàn)殡S著時(shí)間的推移,索引變得支離破碎。這會(huì)導(dǎo)致數(shù)據(jù)庫查詢的性能下降,進(jìn)而導(dǎo)致數(shù)據(jù)庫查詢的性能下降。因此,不時(shí)地重建索引會(huì)非常有益。話雖如此,索引不應(yīng)該經(jīng)常重建,因?yàn)檫@是一項(xiàng)資源密集型任務(wù)。更糟糕的是,當(dāng)重建索引時(shí),將在索引上放置鎖,從而阻止任何人在重建期間訪問它。嘗試訪問該索引以返回所需結(jié)果的所有查詢都將被暫時(shí)阻止,直到重建完成。
在今天的文章中,我們將學(xué)習(xí)建立索引的頻率以及如何確定何時(shí)需要重建索引。
重建索引的頻率
如引言中所述,重建索引既耗費(fèi)資源又是阻塞任務(wù)。這兩方面的考慮使它成為脫機(jī)活動(dòng)的理想選擇,該活動(dòng)可以在訪問數(shù)據(jù)庫的用戶盡可能少的情況下運(yùn)行。通常,這意味著在計(jì)劃的維護(hù)時(shí)段內(nèi)。
制定關(guān)于何時(shí)以及多長時(shí)間重建索引的全面計(jì)劃實(shí)際上是不可行的。這些決定在很大程度上取決于您使用的數(shù)據(jù)類型以及所使用的索引和查詢。考慮到這一點(diǎn),這里有一些有關(guān)何時(shí)重建索引的準(zhǔn)則:
- 每晚重建索引
如果索引迅速碎片化,并且您有一個(gè)夜間維護(hù)窗口,除所有其他維護(hù)任務(wù)之外,該窗口還允許您運(yùn)行“重建索引”任務(wù),那么請務(wù)必繼續(xù)。
- 每周至少執(zhí)行一次
如果您不能每晚重建索引,則應(yīng)至少每周執(zhí)行一次。如果等待時(shí)間超過一周,則由于浪費(fèi)的空白空間和邏輯碎片而產(chǎn)生的負(fù)面影響,可能會(huì)損害SQL Server的性能。
- 選擇調(diào)度
如果沒有維護(hù)窗口至少每周一次執(zhí)行此任務(wù),那么您需要密切注意索引的運(yùn)行情況。
確定是否需要重建索引
在Oracle中,您可以使用ANALYZE INDEX VALIDATE STRUCTURE命令來了解索引的當(dāng)前狀態(tài)。以下是INDEX_STATS表的一些示例輸出:
有兩個(gè)經(jīng)驗(yàn)法則可以幫助確定是否需要重建索引:
如果索引的高度大于四,則重建索引。
刪除的葉行應(yīng)少于20%。
重建索引
在Oracle中,您可以使用Alter Index Rebuild命令來重建索引。它重建空間索引或分區(qū)索引的指定分區(qū)。
ALTER INDEX REBUILD命令具有以下幾種形式:
或
或
處理無法使用的索引
Navicat for Oracle的維護(hù)索引工具提供了兩個(gè)有用的選項(xiàng)來處理無法使用的索引:
- 重建
重新創(chuàng)建現(xiàn)有索引或其分區(qū)或子分區(qū)之一。如果索引標(biāo)記為不可用,則重建成功將標(biāo)記為可用。
- 使索引不可用
使索引不可用。在使用無法使用的索引之前,必須對其進(jìn)行重建、刪除或重新創(chuàng)建。
結(jié)論
在今天的文章中,我們了解了建立索引的頻率以及如何確定何時(shí)需要重建索引。您可以下載Navicat for Oracle試用版免費(fèi)評估~
相關(guān)內(nèi)容推薦: