溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

rebuild online 請慎用

發布時間:2020-08-07 21:51:36 來源:ITPUB博客 閱讀:213 作者:pingdanorcale 欄目:關系型數據庫

好多初級DBA很喜歡用reuildonline重建索引,他們認為這樣做不會影響業務。

曾經發生的幾次故障,在業務用的時候,rebuild online索引,導致大部分業務無法使用,數據庫hang.

 其實rebulid 索引很簡單

drop index index_name

Alter indexindex_name rebuild;

Alter indexindex_name rebuild online;

作為DBA,對生產系統執行任何操作時,僅僅懂這些還是遠遠不夠的,需要明確如下幾點

1、執行該命令會對業務有啥影響,是不是業務時間,如果是一定不要進行類此操作。因為在大對象中創建索引時不僅需要較大temp表空間,而且是DDL操作,基于表原有索引SQL語句的執行計劃都會發生變化,導致大量的解析導致消耗大量的cpu資源。

 2、如果刪除或者索引失效后,會出現大量的全表掃描。這不僅對系統I/O產生壓力,對CPU、內存方面壓力也大。

 3.要理解rebuild和rebuildonline 的區別。

alter index rebuild online實質上是掃描表而不是掃描現有的索引塊來實現索引的重建.

alter index rebuild 只掃描現有的索引塊來實現索引的重建。

rebuild index online在執行期間不會阻塞DML操作,但在開始和結束階段,需要請求模式為4的TM鎖。因此,如果在rebuild indexonline開始前或結束時,有其它長時間的事物在運行,很有可能就造成大量的鎖等待。也就是說在執行前仍會產生阻塞,應該避免排他鎖.如果在業務期間做,可能會導致 online執行很長時間,在 rebulid index online 的時候走的是 full table scan,這時候需要排序,消耗大量的temp空間,rebuild online需要2倍的索引空間。
而rebuild index在執行期間會阻塞DML操作, 但速度較快,rebulidindex 走的index ffs,而ffs搜索的順序是根據leaf block的物理存儲順序相關,也需要排序。也會消耗大量的臨時表空間。

總之不要在業務期間進行DDL(rebulid 及rebulid online index),或者使用DROP INDEX  creat index 來代替rebuild index。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女