索引重建
索引在重建時,查詢仍然可以使用舊索引。實際上,oracle在rebuild時,在建立新索引過程中,並不會刪除舊索引,直到新索引rebuild成功。
從這點可以知道rebuild比刪除重建的一個好處是不會影響原有的SQL查詢,但也正由於此,用rebuild方式建立索引需要相應表空間的空閒空間是刪除重建方式的2倍。
結論:
1、rebuild會阻塞對基表的DML操作,但不會影響rebuild期間查詢對原有索引的使用。
2、rebuild的資料來源可能是基表,也可能是原索引。取決於基表和原索引的大小,哪個小,rebuild時就會用那個作為資料來源。這也說明了網上盛傳的rebuild以原索引作為資料庫的說法是不完全正確的。
3、rebuild online執行使用者在索引重建期間執行DML操作。
4、rebuild online的資料來源是基表。
索引是否需要重建指令碼:
col owner format a15 truncate;
col table_name format a30 truncate;
col index_name format a30 truncate;
select
idx.owner owner,
idx.table_name tablename,
idx.index_name index_name,
idx.blocks idx_blocks,
tbl.blocks tbl_blocks,
trunc(idx.blocks/tbl.blocks*100)/100 pct
from
(select i.owner owner ,i.index_name index_name,
SUM(S1.blocks) blocks,i.table_owner table_owner,
i.table_name table_name
from dba_segments s1,dba_indexes i
where
s1.owner=i.owner and
s1.segment_name=i.index_name and
i.owner not in
('SYS', 'OUTLN', 'SYSTEM','MGMT_VIEW','SYSMAN','DBSNMP','WMSYS','XDB',
'DIP','GOLDENGATE','CTXSYS' )
GROUP BY i.owner ,i.index_name ,i.table_owner , i.table_name ) idx,
(select t.owner owner ,t.table_name table_name,SUM(s2.blocks) blocks
from dba_segments s2,dba_tables t
where
s2.owner=t.owner and
s2.segment_name=t.table_name and
t.owner
not in
('SYS', 'OUTLN','SYSTEM','MGMT_VIEW','SYSMAN','DBSNMP','WMSYS','XDB',
'DIP','GOLDENGATE','CTXSYS' )
GROUP BY T.OWNER,T.TABLE_NAME
) tbl
where
idx.table_owner=tbl.owner and
idx.table_name=tbl.table_name and
(idx.blocks/tbl.blocks)>0.5 and
idx.blocks>200
order by 4;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23891491/viewspace-2847845/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 重建索引索引
- oracle重建索引(一)Oracle索引
- oracle重建索引(三)Oracle索引
- oracle重建索引(二)Oracle索引
- MSSQL Rebuild(重建)索引SQLRebuild索引
- 匿名類 與 索引重建索引
- 清理重建失敗的索引索引
- SQL Server 2014的重建索引SQLServer索引
- 教你如何在 elasticsearch 中重建索引Elasticsearch索引
- HugeGraph之索引重建和刪除索引
- 如何在Mac上重建Spotlight索引Mac索引
- 重建索引報ORA-14086錯誤索引
- 新手必看:如何在Mac上重建Spotlight索引Mac索引
- sqlserver索引重建和索引重組的區別和操作方法SQLServer索引
- 【TUNE_ORACLE】索引定期重建的利與弊Oracle索引
- LOB欄位相關概念(自動建立LOB索引段和重建索引方法)索引
- MySQ索引操作命令總結(建立、重建、查詢和刪除索引命令詳解)索引
- 66_索引管理_複雜上機實驗:基於scoll+bulk+索引別名實現零停機重建索引索引
- ElasticSearch7.3 學習之生產環境實時重建索引Elasticsearch索引
- 記一次Oracle分割槽表全域性索引重建的過程Oracle索引
- 「Elasticsearch」ES重建索引怎麼才能做到資料無縫遷移呢?Elasticsearch索引
- 幽默:重建模、重建和重構
- oracle重建ocrOracle
- oracle DBA 角色重建Oracle
- laradock mariadb 重建容器
- 重建GRUB選單
- Hallengren是SQl Server集備份和索引重建和DBCC checkdb一起的超級好用的工具SQLServer索引
- 重建二叉樹二叉樹
- mysql xtracbakup 重建從庫 .MySql
- 重建二叉樹[by Python]二叉樹Python
- P4198 樓房重建
- 重建Windows引導分割槽Windows
- MCMC 方法影像重建理論
- Python Numpy 切片和索引(高階索引、布林索引、花式索引)Python索引
- 主鍵索引 (聚集索引) 和普通索引 (輔助索引) 的區別索引
- 瀏覽器核心渲染:重建引擎瀏覽器
- 資料泵重建使用者
- 介面重建——Marching cubes演算法演算法