* ÆÄƼ¼Ç Å×ÀÌºí »ý¼º |
|
1. Partitioned TableÀ̶õ?
¢Â Partitioning À̶õ Å« Object ¸¦ ÀÛ°í Manage°¡ °¡´ÉÇÏ°Ô ºÐ¸®ÇÏ´Â °ÍÀ» ÀǹÌÇϸç, Table À̳ª Index ¿¡¼¸¸ °¡´ÉÇÏ°í Cluster, Snapshot Àº ºÒ°¡´É ÇÕ´Ï´Ù. (Oracle8±âÁØ)
¢Â °¢ Partition Àº º°°³ÀÇ Segment¿¡ ÀúÀå µÇ¾î Áý´Ï´Ù.
¢Â Oracle8¿¡¼ TableÀº ±âº»ÀÌ µÇ´Â Key Value¿¡ ÀÇÇØ PartitionÀ¸·Î ºÐ¸®µÇ¾î Áý´Ï´Ù.
¢Â °¢ PartitionÀº µ¶¸³ÀûÀ¸·Î ¿î¿µ µË´Ï´Ù.
¢Â ¿¹¸¦ µé¸é Table PartitionÀº DML(insert, update, delete) ¹®¿¡ ÀÇÇÑ TransactionÀÌ ´Ù¸¥ Partition¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê°í »ç¿ëÀÌ °¡´É ÇÕ´Ï´Ù.
¢Â DBA_TAB_PARTITIONS¿¡ °¢ PartitionÀÇ Storage Á¤º¸°¡ ÀÖ½À´Ï´Ù.
|
2. ÀåÁ¡
¢Â ¿©·¯ ºÐÇÒ ¿µ¿ª¿¡¼ÀÇ µ¥ÀÌÅÍ ÈÑ¼Õ °¡´É¼ºÀÌ °¨¼Ò µË´Ï´Ù.
¢Â °¢ ºÐÇÒ ¿µ¿ªÀ» µ¶¸³ÀûÀ¸·Î ¹é¾÷ÇÏ°í º¹±¸ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¢Â ´õ ¿ëÀÌÇÏ°Ô °ü¸®ÇÒ ¼ö ÀÖÀ¸¸ç °¡¿ë¼º ¹× ¼º´ÉÀ» Çâ»ó ½Ãŵ´Ï´Ù.
|
3. ÆÄƼ¼Ç Å×ÀÌºí »ý¼º ¿¹Á¦
¢Â ÆÄƼ¼Ç Å×À̺íÀ» ¹üÀ§ ºÐÇÒ ¹æ½Ä(PARTITION BY RANGE)À¸·Î »ý¼º Çß½À´Ï´Ù.
SQL>CREATE TABLE emp_pt (EMPNO NUMBER(4), ENAME VARCHAR2(30), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2)) PARTITION BY RANGE(EMPNO)( -->¹üÀ§ ºÐÇÒ ¹æ½ÄÀ¸·Î »ý¼º ÇÕ´Ï´Ù. PARTITION emp_p1 VALUES LESS THAN (2000) TABLESPACE data1, PARTITION emp_p2 VALUES LESS THAN (4000) TABLESPACE data2, PARTITION emp_p3 VALUES LESS THAN (7000) TABLESPACE data3);
Å×À̺íÀÌ »ý¼ºµÇ¾ú½À´Ï´Ù.
emp_p1 ÆÄƼ¼ÇÀº 2000º¸´Ù ÀûÀº °ªÀÌ µé¾î°¡¸ç data1 Å×ÀÌºí½ºÆäÀ̽º¿¡, emp_p2 ÆÄƼ¼ÇÀº 4000º¸´Ù ÀûÀº °ªÀÌ µé¾î°¡¸ç data2 Å×ÀÌºí½ºÆäÀ̽º¿¡, emp_p3 ÆÄƼ¼ÇÀº 7000º¸´Ù ÀûÀº °ªÀÌ µé¾î°¡¸ç data3 Å×ÀÌºí½ºÆäÀ̽º¿¡ °¢°¢ ÇÒ´çÀ» Çß½À´Ï´Ù.
°¢°¢ÀÇ ÆÄƼ¼ÇÀ» ÀÏÁ¤ÇÑ ¹üÀ§·Î ³ª´©¾î¼ °¢°¢ÀÇ Å×ÀÌºí ½ºÆäÀ̽º¸¦ ÇÒ´ç Çß½À´Ï´Ù.
¿À¶óŬ¿¡¼´Â ÀÌ ¿Ü¿¡µµ ¿©·¯ °¡Áö ´Ù¸¥ ¹æ¹ýÀ¸·Î ÆÄ½Ã¼Ç Å×À̺íÀ» »ý¼º ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼´Â °¡Àå ÀÌÇØÇϱ⠽¬¿î ¹üÀ§ ºÐÇÒ ¹æ½ÄÀ¸·Î »ý¼º Çß½À´Ï´Ù.
|
4. µ¥ÀÌÅÍ Á¶ÀÛ ¿¹Á¦
¢Â INSERT
-- emp_p1 ÆÄƼ¼Ç¿¡ µî·ÏÀÌ µË´Ï´Ù. SQL>INSERT INTO emp_pt(empno, ename, job, hiredate, sal) VALUES(1000, 'Ultra', 'SALESMAN', sysdate, 3000); 1 °³ÀÇ ÇàÀÌ ¸¸µé¾îÁ³½À´Ï´Ù. -- emp_p2 ÆÄƼ¼Ç¿¡ µî·ÏÀÌ µË´Ï´Ù. SQL>INSERT INTO emp_pt(empno, ename, job, hiredate, sal) VALUES(2000, 'lion', 'CLERK', sysdate, 2500); 1 °³ÀÇ ÇàÀÌ ¸¸µé¾îÁ³½À´Ï´Ù.
¢Ñ À§ÀÇ µÎ ¿¹Á¦¿Í °°ÀÌ ÀϹÝÀûÀ¸·Î Insert¸¦ Çصµ empno¿¡ µû¶ó¼ ÀÚµ¿ÀûÀ¸·Î ÆÄƼ¼ÇÀÌ ³ª´©¾îÁ® Insert°¡ µË´Ï´Ù.
¾Æ·¡ÀÇ ¿¹Á¦¿Í °°ÀÌ µû·Î ÆÄƼ¼ÇÀ» ÁöÁ¤Çؼ Insert¸¦ ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
-- ÆÄƼ¼ÇÀ» ÅëÇؼ INSERTÇÏ´Â ¹æ¹ý SQL>INSERT INTO emp_pt PARTITION (emp_p3) VALUES (6000, 'scott2', 'CLERK', 5000, sysdate, 1500,0 ,10); 1 °³ÀÇ ÇàÀÌ ¸¸µé¾îÁ³½À´Ï´Ù.
¢Â SELECT -- emp_p1ÆÄƼ¼Ç Á¶È¸ SQL>SELECT empno, ename, job FROM emp_pt PARTITION (emp_p1);
EMPNO ENAME JOB ---------- -------------------- --------- 1000 Ultra SALESMAN
-- emp_p2ÆÄƼ¼Ç Á¶È¸ SQL>SELECT empno, ename, job FROM emp_pt PARTITION (emp_p2); EMPNO ENAME JOB ---------- ------------------- --------- 2000 lion CLERK
¢Â UPDATE/DELETE -- ÆÄƼ¼ÇÀ» ÅëÇؼ UPDATE ¿¹Á¦. SQL>UPDATE emp_pt PARTITION (emp_p3) SET sal = 4000 WHERE empno = 5000; 1 ÇàÀÌ °»½ÅµÇ¾ú½À´Ï´Ù. -- ÆÄƼ¼ÇÀ» ÅëÇؼ DELETE ¿¹Á¦. SQL>DELETE FROM emp_pt PARTITION (emp_p3) WHERE empno = 6000; 1 ÇàÀÌ »èÁ¦µÇ¾ú½À´Ï´Ù.
|
5. Partition Table °ü·ÃÇÑ Dictionary Á¤º¸
¢Â Storage Parameters
DBA_TAB_PARTITIONS¸¦ ÅëÇؼ È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¢Â Partiton Table ÀÇ Upper Partition Bound SQL>SELECT high_value, partition_position FROM sys.dba_tab_partitions WHERE table_name = 'EMP_PT'; HIGH_VALUE PARTITION_POSITION ------------ -------------- 4000 2 MAXVALUE 3 2000 1
|
| |
* ÆÄƼ¼Ç Å×ÀÌºí °ü¸® |
1.PartitionÀ» Ãß°¡ÇÏ´Â ¹æ¹ý
empno¿¡ ´ëÇؼ PartitionÀ» Ãß°¡ ÇÏ°í ½ÍÀº °æ¿ì ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù. SQL>ALTER TABLE emp_pt ADD PARTITION emp_p4 VALUES less than (9000) TABLESPACE test;
Å×À̺íÀÌ º¯°æµÇ¾ú½À´Ï´Ù.
ALTER TABLE Å×À̺í¸í ADD PARTITIOM ÆÄƼ¼Ç¸í VALUES ¹üÀ§ TABLESPACE Å×ÀÌºí½ºÆäÀ̽º¸í
À¸·Î empno°ªÀÌ 9000ÀÌÀüÀÇ °ªÀ» °¡Áö´Â ÆÄƼ¼Ç emp_p4¸¦ Ãß°¡Çß½À´Ï´Ù.
|
2. ƯÁ¤ PartitionÀ» »èÁ¦ÇÏ´Â ¹æ¹ý
PartitionÀ» ¾ø¾Ö°í ½ÍÀº °æ¿ì´Â DROP PARTITION ¸í·É¾î¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. SQL>ALTER TABLE emp_pt DROP PARTITION emp_p4; Å×À̺íÀÌ º¯°æµÇ¾ú½À´Ï´Ù.
|
3. Partition NameÀ» º¯°æÇÏ´Â ¹æ¹ý
Partition Name À» ¹Ù²Ù°í ½Í´Ù¸é RENAME PARTITION ¸í·É¾î¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. SQL>ALTER TABLE emp_pt RENAME PARTITION emp_p3 to emp_p; Å×À̺íÀÌ º¯°æµÇ¾ú½À´Ï´Ù.
emp_p3 ÆÄƼ¼ÇÀÇ À̸§À» emp_p·Î º¯°æ ÇÏ¿´½À´Ï´Ù.
|
4. PartitionÀÇ Tablespace¸¦ ¿Å±â´Â ¹æ¹ý
MOVE PARTITION ¸í·É¾î¸¦ ÀÌ¿ëÇؼ Å×ÀÌºí½ºÆäÀ̽º¸¦ º¯°æ ÇÒ ¼ö ÀÖ½À´Ï´Ù. SQL>ALTER TABLE emp_pt MOVE PARTITION emp_p3 TABLESPACE test nologging; Å×À̺íÀÌ º¯°æµÇ¾ú½À´Ï´Ù.
Partition emp_p3ÀÇ Å×ÀÌºí½ºÆäÀ̽º¸¦ data3¿¡¼ test·Î º¯°æÇß½À´Ï´Ù.
|
5. ƯÁ¤ PartitionÀÇ Data¸¦ TruncateÇÏ´Â ¹æ¹ý
TRUNCATE PARTITION ¸í·ÉÀ» »ç¿ëÇÏ¿© ƯÁ¤ ÆÄƼ¼ÇÀÇ Å×ÀÌÅ͸¦ Truncate½Ãų¼ö ÀÖ½À´Ï´Ù.
Truncate´Â Rollback ÀÌ ºÒ°¡´ÉÇϸç ƯÁ¤Partition Àüü¸¦ »èÁ¦ÇϹǷΠÁÖÀÇÇؼ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. SQL>ALTER TABLE emp_pt TRUNCATE PARTITION emp_p3; Å×À̺íÀÌ À߷ȽÀ´Ï´Ù.
| |
Ãâó : Tong - ¿ëÆòº¸´õ´ÔÀÇ OracleÅë
|
|
|