اوراکل 12cR2 – بهبودی در انجام عملیات EXCHANGE PARTITION

در صورتی که قصد داریم جدولی را برای انجام عملیات EXCHANGE PARTITION ایجاد کنیم، باید ساختار این جدول مشابه با ساختار جدول پارتیشن شده باشد تا امکان انجام عملیات EXCHANGE بین جدول جدید و پارتیشن مورد نظر فراهم شود:

SQL> create table EXCHTBL as select * from SALTBL where 1=2;

Table created

SQL> ALTER TABLE SALTBL EXCHANGE PARTITION P2020 WITH TABLE EXCHTBL;

Table altered

SQL> select count(*) from EXCHTBL;

  COUNT(*)

———-

70000

(بیشتر…)

read only کردن پارتیشنهای یک جدول

از اوراکل 11g می توان یک جدول را در حالت read only قرار داد:

SQL> alter table usef.mytbl read only;

Table altered.

SQL>  alter table usef.mytbl read write;

Table altered.

اما در این نسخه و همچنین نسخه 12cR1، قابلیت قرار دادن پارتیشنی از جدول در حالت read only  وجود ندارد:

SQL*Plus: Release 12.1.0.2.0 Production on Sat Dec 14 17:10:54 2019

SQL> alter session set container=PDB12R1;

Session altered.

SQL> alter table usef.mytbl modify partition p_2000 read only;

ORA-14049: invalid ALTER TABLE MODIFY PARTITION option

(بیشتر…)

ویژگی Multi-column list partitioning در اوراکل 12cR2

تا قبل از اوراکل 12cR2، پارتیشن بندی به روش list، صرفا بر اساس یک ستون قابل انجام بود به عبارت دیگر، تنها می توان یک ستون را به عنوان partition key مشخص کرد در غیر این صورت، با خطای ORA-14304 مواجه خواهیم شد:

SQL*Plus: Release 12.1.0.2.0 Production on Sat Dec 14 17:10:54 2019

SQL> CREATE TABLE person( id NUMBER, name VARCHAR2(30),EYE_COLOR VARCHAR2(10),blood_group VARCHAR2(10))

    PARTITION BY LIST (EYE_COLOR,blood_group)

    (PARTITION p1 VALUES (‘BL’,’B+’),

      PARTITION p2 VALUES (‘BL’,’O-‘),

      PARTITION p3 VALUES (‘GR’,’A+’),

      PARTITION p4 VALUES (‘GR’,’B+’),

      PARTITION p5 VALUES(default)

    );

ORA-14304: List partitioning method expects a single partitioning column

(بیشتر…)

امکان اجرای عملیات بر روی چند پارتیشن

در اوراکل 12c می توان با اجرای صرفا یک دستور، چندین پارتیشن را حذف نمود(DROP PARTITION) و یا چندین پارتیشن را به جدول اضافه کرد(ADD PARTITION).

SQL> alter table mytbl drop partition P_2000,SYS_P900;

Table altered

SQL> alter table mytbl add partition P_2000  VALUES LESS THAN (TO_DATE(‘ 2000-01-01 00:00:00’, ‘SYYYY-MM-DD HH24:MI:SS’)),partition SYS_P900  VALUES LESS THAN (TO_DATE(‘ 2040-01-01 00:00:00’, ‘SYYYY-MM-DD HH24:MI:SS’));

Table altered

ویژگی Partial Indexing برای جداول پارتیشن شده

در نسخه های اوراکل پیش از 12c، ایجاد ایندکس برای یک جدول پارتیشن بندی شده، سبب ایجاد ایندکس برای همه پارتیشنهای آن جدول می شد. چالش اساسی در این زمینه زمانی مطرح می شود که در مواردی، ایجاد ایندکس، اساسا کاربردی برای پارتیشنهای قدیمی جدول و یا حداقل بعضی از پارتیشنهای آن، ندارد.

(بیشتر…)

پارتیشن بندی انلاین جداول در اوراکل 12cR2

با ارائه نسخه 12cR2 قابلیت جدیدی در زمینه پارتیشن بندی ارائه شد که به لحاظ پیاده سازی، پیچیدگی بسیار کمتری را نسبت به روشهای رایج پارتیشن بندی نظیر بسته dbms_redefintion دارد و صرفا با اجرای یک دستور ALTER TABLE .. MODIFY، پارتیشن بندی را برای جداول امکان پذیر خواهد کرد.

(بیشتر…)