欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

altertablemove和altertableshrinkspace的區(qū)別是什么

alter table move 和 alter table shrink space的區(qū)別是什么,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)專注于元寶山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供元寶山營銷型網(wǎng)站建設(shè),元寶山網(wǎng)站制作、元寶山網(wǎng)頁設(shè)計(jì)、元寶山網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造元寶山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供元寶山網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

move 和shrink 的共同點(diǎn)
1、收縮段
2、消除部分行遷移
3、消除空間碎片
4、使數(shù)據(jù)更緊密

shrink


語法:
  alter table TABLE_NAME shrink space [compact|cascate]

segment shrink執(zhí)行的兩個(gè)階段:
1、數(shù)據(jù)重組(compact):

通過一系列insert、delete操作,將數(shù)據(jù)盡量排列在段的前面。在這個(gè)過程中需要在表上加RX鎖,即只在需要移動(dòng)的行上加鎖。
由于涉及到rowid的改變,需要enable row movement.同時(shí)要disable基于rowid的trigger.這一過程對(duì)業(yè)務(wù)影響比較小。

2、HWM調(diào)整:第二階段是調(diào)整HWM位置,釋放空閑數(shù)據(jù)塊。

此過程需要在表上加X鎖,會(huì)造成表上的所有DML語句阻塞。在業(yè)務(wù)特別繁忙的系統(tǒng)上可能造成比較大的影響。
注意:shrink space語句兩個(gè)階段都執(zhí)行。
shrink space compact只執(zhí)行第一個(gè)階段。
如果系統(tǒng)業(yè)務(wù)比較繁忙,
可以先執(zhí)行shrink space compact重組數(shù)據(jù),然后在業(yè)務(wù)不忙的時(shí)候再執(zhí)行shrink space降低HWM釋放空閑數(shù)據(jù)塊。


舉例

  alter table TABLE_NAME shrink space compact;  只整理碎片 不回收空間, 
  alter table TABLE_NAME shrink space;                 整理碎片并回收空間。

  alter table TABLE_NAME shrink space cascade;    整理碎片回收空間 并連同表的級(jí)聯(lián)對(duì)象一起整理(比如索引)
  --分區(qū)表
  alter table ticket modify  PARTITION P28071 shrink space cascade


shrink的優(yōu)點(diǎn)
1.可在線執(zhí)行
2.可使用參數(shù)cascade,同時(shí)收縮表上的索引
3.執(zhí)行后不會(huì)導(dǎo)致索引失效
4.可避免alter table move執(zhí)行過程中占用很多表空間(如果表10G大小,那alter table move差不多還得需要10G空間才能執(zhí)行)。

shrink使用條件:
使用步驟
  1. alter table t1 enable  ROW MOVEMENT;
  2. shrink 操作
  3. alter table t1 disable  ROW MOVEMENT;

shrink使用限制:
Shrink 操作需滿足表空間是本地管理和自動(dòng)段空間管理(10g、11g默認(rèn)就是這樣),
以下情況不能用shrink:

IOT索引組織表
用rowid創(chuàng)建的物化視圖的基表
帶有函數(shù)索引的表
SECUREFILE 類型的大對(duì)象
壓縮表

move



move解決的問題
1、將一個(gè)table從當(dāng)前的tablespace上移動(dòng)到另一個(gè)tablespace上:

alter table t move tablespace tablespace_name;
alter table TABLE_NAME move ;                                                    --在原來的表空間內(nèi)部移動(dòng)。

2、來改變table已有的block的存儲(chǔ)參數(shù),如:

    alter table t move storage (initial 30k next 50k);

3、另外,move操作也可以用來解決table中的行遷移的問題。

使用move的一些注意事項(xiàng):
1、table上的index需要rebuild:
    在前面我們討論過,move操作后,數(shù)據(jù)的rowid發(fā)生了改變,我們知道,index是通過rowid來fetch數(shù)據(jù)行的,所以,table上的index是必須要rebuild的。
    alter index index_name rebuild online;
2、move時(shí)對(duì)table的鎖定
    當(dāng)我們對(duì)table進(jìn)行move操作時(shí),查詢v$locked_objects視圖可以發(fā)現(xiàn),table上加了exclusive lock
3、關(guān)于move時(shí)空間使用的問題:
    當(dāng)我們使用alter table move來降低table的HWM時(shí),有一點(diǎn)是需要注意的,這時(shí),當(dāng)前的tablespace中需要有1倍于table的空閑空間以供使用。


move和hrink的區(qū)別是:
1、move后,表在表空間中的位置肯定會(huì)變,可能前移也可能后移,一般來說如果該表前面的表空間中有足夠空間容納該表,則前移,否則后移。
2、hrink后,表在表空間中的位置肯定不變,也就是表的段頭位置不會(huì)發(fā)生變化。

3、Move會(huì)移動(dòng)高水位,但不會(huì)釋放申請(qǐng)的空間,是在高水位以下(below HWM)的操作。
4、shrink space 同樣會(huì)移動(dòng)高水位,但也會(huì)釋放申請(qǐng)的空間,是在高水位上下(below and above HWM)都有的操作。

5、使用move時(shí),會(huì)改變一些記錄的ROWID,所以MOVE之后索引會(huì)變?yōu)闊o效,需要REBUILD。
6、使用shrink space時(shí),索引會(huì)自動(dòng)維護(hù)。如果在業(yè)務(wù)繁忙時(shí)做壓縮,
    可以先shrink space compact,來壓縮數(shù)據(jù)而不移動(dòng)HWM,等到不繁忙的時(shí)候再shrink space來移動(dòng)HWM。


7、shrink可以單獨(dú)壓縮索引,alter index xxx shrink space來壓縮索引。另外、壓縮表時(shí)指定Shrink space cascade會(huì)同時(shí)壓縮索引,




測試

SQL>
SQL> drop table  test  purge;
SQL> drop table  test2        purge;
SQL>
SQL> create table test (id number) storage (initial 10m next 1m) tablespace users;
SQL> create table test2 (id number) storage (initial 10m next 1m) tablespace users;
SQL>
SQL> insert into test values(1);
SQL> insert into test2 values(1);
SQL>
SQL> analyze table test compute statistics;
SQL> analyze table test2 compute statistics;
SQL>
SQL> col SEGMENT_NAME for a10;
SQL> select SEGMENT_NAME,EXTENTS,BLOCKS,INITIAL_EXTENT/1024/1024 init from user_segments where SEGMENT_NAME in ('TEST','TEST2');
SEGMENT_NA                                EXTENTS                                 BLOCKS                                   INIT
---------- -------------------------------------- -------------------------------------- --------------------------------------
TEST2                                           3                                   1280                                     10
TEST                                            3                                   1280                                     10
--兩個(gè)表,原始申請(qǐng)的分區(qū)數(shù)和數(shù)據(jù)塊數(shù)
SQL> col TABLE_NAME for a10;
SQL> select TABLE_NAME,BLOCKS,EMPTY_BLOCKS from user_tables where table_name in ('TEST','TEST2');
TABLE_NAME                                 BLOCKS                           EMPTY_BLOCKS
---------- -------------------------------------- --------------------------------------
TEST                                           46                                   1234
TEST2                                          46                                   1234
--兩個(gè)表,實(shí)際使用的數(shù)據(jù)塊數(shù)46,空閑數(shù)據(jù)塊數(shù)1234。
SQL>
SQL> begin
  2   for i in 1..100000 loop
  3  insert into test values(i);
  4  insert into test2 values(i);
  5  end loop;
  6  end;
  7  /
SQL>
SQL> analyze table test compute statistics;
SQL> analyze table test2 compute statistics;
SQL> select SEGMENT_NAME,EXTENTS,BLOCKS,INITIAL_EXTENT/1024/1024 init from user_segments where SEGMENT_NAME in ('TEST','TEST2');
SEGMENT_NA                                EXTENTS                                 BLOCKS                                   INIT
---------- -------------------------------------- -------------------------------------- --------------------------------------
TEST2                                           3                                   1280                                     10
TEST                                            3                                   1280                                     10
--插入大量數(shù)據(jù)后,兩個(gè)表的原始申請(qǐng)分區(qū)數(shù)和數(shù)據(jù)塊數(shù),沒有變化
SQL> select TABLE_NAME,BLOCKS,EMPTY_BLOCKS from user_tables where table_name in ('TEST','TEST2');
TABLE_NAME                                 BLOCKS                           EMPTY_BLOCKS
---------- -------------------------------------- --------------------------------------
TEST                                          174                                   1106
TEST2                                         174                                   1106
--插入大量數(shù)據(jù)后,兩個(gè)表實(shí)際使用的數(shù)據(jù)塊數(shù)發(fā)生了變化,使用174塊,空閑1106塊。174就是高水位線
SQL>
SQL>
SQL> delete from test where rownum<=50000;
SQL> delete from test2 where rownum<=50000;
SQL>
SQL> analyze table test compute statistics;
SQL> analyze table test2 compute statistics;
SQL> select SEGMENT_NAME,EXTENTS,BLOCKS,INITIAL_EXTENT/1024/1024 init from user_segments where SEGMENT_NAME in ('TEST','TEST2');
SEGMENT_NA                                EXTENTS                                 BLOCKS                                   INIT
---------- -------------------------------------- -------------------------------------- --------------------------------------
TEST2                                           3                                   1280                                     10
TEST                                            3                                   1280                                     10
--刪除大量數(shù)據(jù)后,兩個(gè)表的原始申請(qǐng)分區(qū)數(shù)和數(shù)據(jù)塊數(shù),沒有變化


SQL> select TABLE_NAME,BLOCKS,EMPTY_BLOCKS from user_tables where table_name in ('TEST','TEST2');
TABLE_NAME                                 BLOCKS                           EMPTY_BLOCKS
---------- -------------------------------------- --------------------------------------
TEST                                          174                                   1106
TEST2                                         174                                   1106
--刪除大量數(shù)據(jù)后,兩個(gè)表實(shí)際使用的數(shù)據(jù)塊數(shù)也沒有發(fā)生變化。即delete不會(huì)釋放空間


SQL>
SQL>
SQL> alter table test move;
SQL>
SQL> analyze table test compute statistics;
SQL> select SEGMENT_NAME,EXTENTS,BLOCKS,INITIAL_EXTENT/1024/1024 init from user_segments where SEGMENT_NAME in ('TEST','TEST2');
SEGMENT_NA                                EXTENTS                                 BLOCKS                                   INIT
---------- -------------------------------------- -------------------------------------- --------------------------------------
TEST2                                           3                                   1280                                     10
TEST                                            3                                   1280                                     10
--對(duì)test表,做move操作,原始申請(qǐng)分區(qū)和數(shù)據(jù)塊數(shù),沒有變化。


SQL> select TABLE_NAME,BLOCKS,EMPTY_BLOCKS from user_tables where table_name in ('TEST','TEST2');
TABLE_NAME                                 BLOCKS                           EMPTY_BLOCKS
---------- -------------------------------------- --------------------------------------
TEST                                           95                                   1185
TEST2                                         174                                   1106
--對(duì)test表,做move操作,實(shí)際使用數(shù)據(jù)塊數(shù)發(fā)生變化。
Move會(huì)移動(dòng)高水位,但不會(huì)釋放申請(qǐng)的空間,是在高水位以下(below HWM)的操作。


SQL>
SQL>
SQL> alter table test2 enable row movement;
SQL> alter table test2 shrink space;
SQL> analyze table test2 compute statistics;
SQL> select SEGMENT_NAME,EXTENTS,BLOCKS,INITIAL_EXTENT/1024/1024 init from user_segments where SEGMENT_NAME in ('TEST','TEST2');
SEGMENT_NA                                EXTENTS                                 BLOCKS                                   INIT
---------- -------------------------------------- -------------------------------------- --------------------------------------
TEST2                                           1                                    104                                     10
TEST                                            3                                   1280                                     10
--對(duì)test2表,做shrink操作,原始申請(qǐng)分區(qū)和數(shù)據(jù)塊數(shù),發(fā)生了變化
SQL> select TABLE_NAME,BLOCKS,EMPTY_BLOCKS from user_tables where table_name in ('TEST','TEST2');
TABLE_NAME                                 BLOCKS                           EMPTY_BLOCKS
---------- -------------------------------------- --------------------------------------
TEST                                           95                                   1185
TEST2                                          79                                     25
--對(duì)test2表,做shrink操作,實(shí)際使用數(shù)據(jù)塊數(shù),發(fā)生了變化
shrink space 同樣會(huì)移動(dòng)高水位,但也會(huì)釋放申請(qǐng)的空間,是在高水位上下(below and above HWM)都有的操作。

看完上述內(nèi)容,你們掌握alter table move 和 alter table shrink space的區(qū)別是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站欄目:altertablemove和altertableshrinkspace的區(qū)別是什么
分享地址:http://chinadenli.net/article46/ppceeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、面包屑導(dǎo)航搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
初尝人妻少妇中文字幕在线| 亚洲国产一区精品一区二区三区色| 日韩在线视频精品视频| 亚洲天堂一区在线播放| 少妇肥臀一区二区三区| 九九热视频免费在线视频| 亚洲国产av在线观看一区| 国内胖女人做爰视频有没有| 欧美日韩精品人妻二区三区| 日韩不卡一区二区三区色图| 国产精品国产亚洲区久久| 91欧美激情在线视频| 日韩欧美国产高清在线| 国产免费成人激情视频| 亚洲精选91福利在线观看| 免费在线成人激情视频| 国产精品内射视频免费| 婷婷色国产精品视频一区| 成人欧美精品一区二区三区| 国产欧美精品对白性色| 又色又爽又黄的三级视频| 国产又黄又猛又粗又爽的片| 亚洲人妻av中文字幕| 国产一区欧美一区二区| 台湾综合熟女一区二区| 日韩精品视频免费观看| 国产中文字幕一区二区| 日韩免费国产91在线| 国产在线一区中文字幕| 在线观看国产成人av天堂野外| 午夜小视频成人免费看| 丰满人妻一二三区av| 人人妻在人人看人人澡| 精品一区二区三区不卡少妇av| 国产av精品一区二区| 熟女乱一区二区三区四区| 亚洲伦片免费偷拍一区| 欧美日韩国产的另类视频| 日韩欧美国产精品中文字幕| 国产高清精品福利私拍| 色综合久久超碰色婷婷|