国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Oracle 非分區(qū)表轉(zhuǎn)換為分區(qū)表

IT那活兒 / 2495人閱讀
Oracle 非分區(qū)表轉(zhuǎn)換為分區(qū)表

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!





11g環(huán)境




1. 創(chuàng)建實(shí)驗(yàn)表和實(shí)驗(yàn)數(shù)據(jù)


----------
SQL> create table test_p (id number);
Table created.
SQL> declare
i number:=1;
begin
for i in 1..3000 loop
insert into scott.test_p values(i);
commit;
end loop;
end;
/
PL/SQL procedure successfully completed.
2. 通過CTAS重建表為分區(qū)表
1)簡答易用,采用DDL語句,產(chǎn)生的redo較少;
2)數(shù)據(jù)一致性差;
3)適于修改不頻繁的表。
----------
SQL> create table test_p2
partition by range (id)
(
partition p1 values less than (1000
),
partition p2 values less than (2000),
partition p3 values less than (3000),
partition p4 values less than (maxvalue)
)
as
select * from test_p
;
Table created.
3. 在線重定義online redefinition
3.1 為實(shí)驗(yàn)表創(chuàng)建索引
----------
SQL> create index t_p on test_p(id);
Index created.


3.2 檢查實(shí)驗(yàn)表是否可以在線重定義

1)保證數(shù)據(jù)的一致性;
2)表必須有主鍵;
3)需要有中間表;
4)必須有足夠兩份表數(shù)據(jù)的空間。
通過報錯了解,當(dāng)前表缺少主鍵:
----------
SQL> exec dbms_redefinition.can_redef_table( scott,test_p,dbms_redefinition.cons_use_pk);
BEGIN dbms_redefinition.can_redef_table( scott,test_p,dbms_redefinition.cons_use_pk); END;
*
ERROR at line 1:
ORA-12089: cannot online redefine table "SCOTT"."TEST_P" with no primary key
ORA-06512: at "SYS.DBMS_REDEFINITION", line 143
ORA-06512: at "SYS.DBMS_REDEFINITION", line 1635
ORA-06512: at line 1
3.3 創(chuàng)建主鍵重新檢查通過
----------
SQL> alter table test_p add constraint pt_p primary key(id);
Table altered.
SQL> exec dbms_redefinition.can_redef_table( scott,test_p,dbms_redefinition.cons_use_pk);
PL/SQL procedure successfully completed.
3.4 新建臨時分區(qū)表并添加主鍵約束
----------
SQL> create table p_temp (id number)
partition by range (id)
(
partition p1 values less than(1000
),
partition p2 values less than(2000),
partition p3 values less than(3000),
partition p4 values less than(maxvalue)
)
;
Table created.
SQL> alter table p_temp add constraint pp_temp primary key(id);
Table altered.
3.5 啟動在線重定義
----------
SQL> exec dbms_redefinition.start_redef_table(scott, test_p, p_temp);
PL/SQL procedure successfully completed.
3.6 結(jié)束在線重定義并檢查結(jié)果
----------
SQL> exec dbms_redefinition.finish_redef_table(scott, test_p, p_temp);
PL/SQL procedure successfully completed.
SQL> select table_name,partition_name from user_tab_partitions where table_name=TEST_P;
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST_P P1
TEST_P P2
TEST_P P3
TEST_P P4






12c環(huán)境下



相對于11g中的方法,12c的新特性更方便使用(利用12c的新特性)。
存在的部分限制:
  • 它不能被用來分割一個索引有序的表(IOT);
  • 如果表有域索引,就不能使用它;
  • 只能在脫機(jī)模式下將表轉(zhuǎn)換為reference-partitioned子表。
1. 創(chuàng)建實(shí)驗(yàn)表和數(shù)據(jù)
----------
SQL> create table test_p (id number);
Table created.
SQL> declare
i number:=1;
begin
for i in 1..3000 loop
insert into scott.test_p values(i);
commit;
end loop;
end;
/
PL/SQL procedure successfully completed.
2. 查看當(dāng)前表的分區(qū)情況
----------
SQL> select table_name,partition_name from user_tab_partitions where table_name=TEST_P;
no rows selected
3. 為實(shí)驗(yàn)表添加主鍵約束
----------
SQL> alter table test_p add constraint tp_p primary key (id);
Table altered.
4. 利用12c的新特性更改非分區(qū)表
----------
SQL> alter table test_p modify
partition by range (id)
(
partition p1 values less than (1000
),
partition p2 values less than (2000),
partition p3 values less than (3000),
partition p4 values less than (maxvalue)
)
update indexes (tp_p global)
;
Table altered.
5. 查看當(dāng)前表的分區(qū)情況
----------
SQL> select table_name,partition_name from user_tab_partitions where table_name=TEST_P;
TABLE_NAME PARTITION_NAME
------------------------------
TEST_P P1
TEST_P P2
TEST_P P3
TEST_P P4






對分區(qū)表進(jìn)行擴(kuò)展的兩種情況



1. 當(dāng)最大的分區(qū)的值有界限
1.1 創(chuàng)建實(shí)驗(yàn)表
----------
SQL> create table test_p2 (id number)
partition by range (id)
(
partition p1 values less than (1000),
partition p2 values less than (2000),
partition p3 values less than (3000)
);
Table created.
1.2 查看當(dāng)前分區(qū)情況:
----------
SQL> select table_name,partition_name from user_tab_partitions where table_name=TEST_P2;
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST_P2 P1
TEST_P2 P2
TEST_P2 P3
1.3 添加分區(qū):
----------
SQL> alter table test_p2 add partition p4 values less than (4000);
Table altered.
1.4 查看添加后的分區(qū):
----------
SQL> select table_name,partition_name from user_tab_partitions where table_name=TEST_P2;
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST_P2 P1
TEST_P2 P2
TEST_P2 P3
TEST_P2 P4
2. 當(dāng)最大分區(qū)的值為maxvalue時
這時直接添加分區(qū)會返回報錯,因?yàn)樘砑拥姆謪^(qū)的值應(yīng)該大于上一個分區(qū),但上一個分區(qū)為maxvalue顯然通過這個方法無法實(shí)現(xiàn)分區(qū)的添加。
----------
SQL> alter table test_p add partition p5 values less than (4000);
alter table test_p add partition p5 values less than (4000)
*
ERROR at line 1:
ORA-14074: partition bound must collate higher than that of the last partition


此時,可以通過分割存在maxvalue的分區(qū)來實(shí)現(xiàn)對分區(qū)的增加:


----------
SQL> alter table test_p split partition p4 at (4000) into (partition p5,partition p4);
Table altered.






Dblink的創(chuàng)建



1. 配置tns文件
2. 查看當(dāng)前用戶的權(quán)限
SQL> conn scott/oracle
Connected.
SQL> select * from user_sys_privs;
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
SCOTT UNLIMITED TABLESPACE NO


賦予當(dāng)前用戶創(chuàng)建dblink的權(quán)限:


----------
SQL> grant create public database link to scott;
Grant succeeded.
SQL> grant create database link to scott;
Grant succeeded.
再次確認(rèn)權(quán)限:
----------
SQL> select * from user_sys_privs;

USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
SCOTT CREATE DATABASE LINK NO
SCOTT UNLIMITED TABLESPACE NO
SCOTT CREATE PUBLIC DATABASE LINK NO
3. 創(chuàng)建公共dblink
4. 查看創(chuàng)建結(jié)果并測試



本文作者:王 剛

本文來源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129605.html

相關(guān)文章

  • DBASK問答集萃(2)

    摘要:新晉技術(shù)專家下面是墨天輪部分新晉的技術(shù)專家。大家可以點(diǎn)擊往期閱讀墨天輪技術(shù)專家邀請函了解詳情,申請成為我們的技術(shù)專家,加入專家團(tuán)隊(duì),與我們一起創(chuàng)建一個開放互助的數(shù)據(jù)庫技術(shù)社區(qū)。新關(guān)聯(lián)公眾號墨天輪是一個開放互助的數(shù)據(jù)庫技術(shù)社區(qū)。 引言 近期我們在DBASK小程序增加了數(shù)據(jù)庫 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的專題欄目和一些新的技術(shù)...

    liuchengxu 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<