好多初級DBA很喜歡用reuildonline重建索引,他們認為這樣做不會影響業(yè)務(wù)。
創(chuàng)新互聯(lián)建站是一家專業(yè)提供衡山企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為衡山眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。
曾經(jīng)發(fā)生的幾次故障,在業(yè)務(wù)用的時候,rebuild online索引,導致大部分業(yè)務(wù)無法使用,數(shù)據(jù)庫hang.
其實rebulid 索引很簡單
drop index index_name
Alter indexindex_name rebuild;
Alter indexindex_name rebuild online;
作為DBA,對生產(chǎn)系統(tǒng)執(zhí)行任何操作時,僅僅懂這些還是遠遠不夠的,需要明確如下幾點
1、執(zhí)行該命令會對業(yè)務(wù)有啥影響,是不是業(yè)務(wù)時間,如果是一定不要進行類此操作。因為在大對象中創(chuàng)建索引時不僅需要較大temp表空間,而且是DDL操作,基于表原有索引SQL語句的執(zhí)行計劃都會發(fā)生變化,導致大量的解析導致消耗大量的cpu資源。
2、如果刪除或者索引失效后,會出現(xiàn)大量的全表掃描。這不僅對系統(tǒng)I/O產(chǎn)生壓力,對CPU、內(nèi)存方面壓力也大。
3.要理解rebuild和rebuildonline 的區(qū)別。
alter index rebuild online實質(zhì)上是掃描表而不是掃描現(xiàn)有的索引塊來實現(xiàn)索引的重建.
alter index rebuild 只掃描現(xiàn)有的索引塊來實現(xiàn)索引的重建。
rebuild index online在執(zhí)行期間不會阻塞DML操作,但在開始和結(jié)束階段,需要請求模式為4的TM鎖。因此,如果在rebuild indexonline開始前或結(jié)束時,有其它長時間的事物在運行,很有可能就造成大量的鎖等待。也就是說在執(zhí)行前仍會產(chǎn)生阻塞,應該避免排他鎖.如果在業(yè)務(wù)期間做,可能會導致 online執(zhí)行很長時間,在 rebulid index online 的時候走的是 full table scan,這時候需要排序,消耗大量的temp空間,rebuild online需要2倍的索引空間。
而rebuild index在執(zhí)行期間會阻塞DML操作, 但速度較快,rebulidindex 走的index ffs,而ffs搜索的順序是根據(jù)leaf block的物理存儲順序相關(guān),也需要排序。也會消耗大量的臨時表空間。
總之不要在業(yè)務(wù)期間進行DDL(rebulid 及rebulid online index),或者使用DROP INDEX creat index 來代替rebuild index。
網(wǎng)頁標題:rebuildonline請慎用
文章路徑:http://www.rwnh.cn/article6/jsciig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、微信小程序、App設(shè)計、網(wǎng)站設(shè)計、面包屑導航、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)