溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

update表中index索引列對(duì)原索引條目的操作是什么

發(fā)布時(shí)間:2021-11-04 17:01:09 來(lái)源:億速云 閱讀:225 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫(kù)

本篇內(nèi)容主要講解“update表中index索引列對(duì)原索引條目的操作是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“update表中index索引列對(duì)原索引條目的操作是什么”吧!

--將原索引條目刪除,然后再插入新值條目。

實(shí)驗(yàn)驗(yàn)證:

方法:通過(guò)修改index列值后,查看index碎片的變化

--建立table測(cè)試
CREATE TABLE MES1.T_OBJECT
AS
SELECT * FROM DBA_OBJECTS
WHERE ROWNUM<=20000;
--當(dāng)前20000筆數(shù)據(jù)
SELECT COUNT(1) FROM MES1.T_OBJECT;
20000
--建立index
CREATE INDEX MES1.IDX_OWNER ON  MES1.T_OBJECT(OWNER);
--當(dāng)前index使用大小
SELECT SEGMENT_NAME,BYTES,BLOCKS FROM DBA_SEGMENTS
WHERE SEGMENT_NAME='IDX_OWNER'
SEGMENT_NAME    BYTES    BLOCKS
IDX_OWNER    458752    56

update index列前索引的使用狀況

--使用ANALYZE INDEX ... VALIDATE STRUCTURE可分析index具體使用情況和是否有壞塊,
注意執(zhí)行不使用online話會(huì)產(chǎn)生鎖,阻塞DML
analyze index  MES1.IDX_OWNER validate structure;
--分析結(jié)果可通過(guò)index_stats查看
select NAME,BLOCKS,DEL_LF_ROWS,LF_ROWS,DEL_LF_ROWS/LF_ROWS from index_stats;
NAME    BLOCKS    DEL_LF_ROWS    LF_ROWS    DEL_LF_ROWS/LF_ROWS
IDX_OWNER    56    0    20000    0
--BLOCKS: Blocks allocated to the segment,index segment使用56個(gè)block
--DEL_LF_ROWS: Number of deleted leaf rows in the index,索引中被刪除的葉子行數(shù),當(dāng)前沒(méi)有刪除所以是0
--LF_ROWS: Number of leaf rows,葉子總行數(shù),為建表時(shí)的20000
--DEL_LF_ROWS/LF_ROWS:index中被刪除行占總行數(shù)的百分比,
  即碎片數(shù)(如果用del_lf_rows_len/lf_rows_len更準(zhǔn)確),這里沒(méi)有刪除行所以為0

update index列

--修改10000筆索引列值
UPDATE  MES1.T_OBJECT SET OWNER='TESTUIDX'
WHERE ROWNUM<=10000;
commit;

update index列后索引的使用狀況

--再次分析index使用狀況
analyze index  MES1.IDX_OWNER validate structure;
select NAME,BLOCKS,DEL_LF_ROWS,LF_ROWS,DEL_LF_ROWS/LF_ROWS from index_stats;
select * from index_stats
NAME    BLOCKS    DEL_LF_ROWS    LF_ROWS    DEL_LF_ROWS/LF_ROWS
IDX_OWNER    112    10000    30000    0.333333333333333
--BLOCKS: 增加到了112
--DEL_LF_ROWS: update后索引中被刪除的葉子行數(shù)變?yōu)?0000,說(shuō)明update會(huì)將原來(lái)索引條目行刪除
--LF_ROWS: 葉子總行數(shù)變?yōu)?0000,
--進(jìn)一步證實(shí)是刪除了10000行,但index中之前空間并沒(méi)有釋放,再加上update后新插入的10000,也就是30000了
--DEL_LF_ROWS/LF_ROWS:因?yàn)閡pdate被刪除的行產(chǎn)生的碎片為10000/30000,正好為0.333333333333333

到此,相信大家對(duì)“update表中index索引列對(duì)原索引條目的操作是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI