91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

ORA-14402: 更新分區關鍵字列將導致分區的更改

發布時間:2020-08-15 01:58:54 來源:ITPUB博客 閱讀:305 作者:leodinas_kong 欄目:關系型數據庫
       默認情況下,oracle的分區表對于分區字段是不允許進行update操作的,如果有對分區字段行進update,就會報錯——ORA-14402: 更新分區關鍵字列將導致分區的更改。這種情況可以通過開啟表的行移動來允許對分區字段的update 操作:
      alter table xxx enable row movement;
     之後就可以成功update 分區字段,同時因為行的物理移動,導致rowid發生變化,對應列值的索引葉塊 會標記為刪除,插入新的葉塊,重定義完分區后,記得關閉行移動。
     alter table xxx disable row movement;

下面三種情況需要開啟row movement
      1.更新Partition Key
        分區表某一行更新時,如果更新的是分區列,并且更新后的列值不屬于原來的這個分區,如果開啟了這個選項,就會把這行從這個分區中delete掉,并加到更新后所屬的分區。相當于一個隱式的delete+insert,但是不會觸發insert/delete觸發器。如果沒有開啟這個選項,就會在更新時報錯ORA-14402;
      這一操作產生影響的特殊之處在于這是個DML操作,是和online transaction密切相關。對于這樣一個UPDATE,實際上分為3步:先從原有分區將數據刪除;將原數據轉移到新分區上;更新數據。
      其影響就在于以下幾個方面:
一個UPDATE被分解為DELET、INSERT、UPDATE三個操作,增加了性能負擔。其中,DELETE的查詢條件與原UPDATE的查詢條件相同,新的UPDATE的查詢條件是基于INSERT生成的新的ROWID,相應的Redo Log、Undo Log會增加;
      如果Update語句還涉及到了Local Index的字段的話,新、舊2個分區上的Local Index都要被更新。
      還有一點,Row Movement會和域索引(Domain Index)產生沖突:如果表上定義了域索引,開啟Row Movement就會失敗;反之亦然。

     2. Flaskback table to 某時間
         Flashback Table實際是通過Flashback Query將表中數據進行了一次刪除、插入操作,因此ROWID會發生變化
     3. Shrink Segment
         Shrink Segment能幫助我們壓縮數據段、整理數據碎片、降低高水位,以提高性能、節省空間。

       有必要說明一下,row movement并不是行遷移,最大的區別是行遷移的rowid是不變的,行遷移是update 行記錄時,數據塊沒有足夠的空閒容納數據行,Oracle將此行移到其他數據塊,同時保留此行的rowid不變,并在原數據塊建一指針指向新的行位置。這種情況下,讀取一行數據就會訪問2個數據塊,增加IO,導致性能下降。

       

如果直接創建主鍵,使用的global index,當某分區被drop后,主鍵會失效,

ALTERTABLE PHAECDA1.HCPSGLSINFOPZOW_NEW ADDCONSTRAINT PK_STAMP PRIMARYKEY(T_STAMP) tablespace xx

改為 local index,但不包含分區段,報錯

ALTERTABLE PHAECDA1.HCPSGLSINFOPZOW_NEW ADDCONSTRAINT PK_STAMP PRIMARYKEY(T_STAMP) using index local tablespace  xxx

ORA-14039: partitioning columns must form a subset of key columns of a UNIQUE

ORA-14039: 分區列必須構成 UNIQUE 索引的關鍵字列子集

Local index ,主鍵+分區鍵  作為新的主鍵,自動創建分區index ,index會按分區段Partition 分區到table的分區表空間

ALTERTABLE PHAECDA1.HCPSGLSINFOPZOW_NEW ADDCONSTRAINT PK_STAMP PRIMARYKEY(T_STAMP,CLDATE)USINGINDEXLOCAL;

先創建index ,再創建主鍵,

當然,主鍵也可直接作為分區段


向AI問一下細節

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

AI

安仁县| 肃南| 青神县| 余庆县| 武定县| 汕头市| 湖北省| 东阿县| 新巴尔虎左旗| 罗平县| 余干县| 葵青区| 平武县| 灌南县| 梧州市| 武清区| 宜阳县| 米林县| 南华县| 东乡族自治县| 司法| 铁岭市| 辉南县| 龙泉市| 怀远县| 土默特右旗| 吉水县| 本溪市| 新巴尔虎左旗| 太白县| 渝北区| 衡阳市| 新乡市| 文水县| 扎赉特旗| 邢台市| 商洛市| 郸城县| 鸡西市| 外汇| 嘉祥县|