참고 : 본문서는정보제공만을목적으로제공됩니다. 본문서는일체의자료, 코드, 또는기능을보장하지않으며, 본문서의정보에의존하여구매결정을내려서도안됩니다. 본문서에서설명된오라클제품또는기능의개발, 출시, 기능제공시점등은전적으로오라클의재량에의해결정됩니다. ORACLE PARTITIONING ORACLE PARTITIONING 8 세대에걸쳐검증된기능 업계에서가장광범위하고포괄적인솔루션 파티셔닝을이용한다양한애플리케이션의성능, 가용성, 관리성개선 데이터베이스의정보생명주기관리를위한핵심테크놀로지 : 온라인 티어기반아카이빙 을통해 TCO 를극적으로절감 애플리케이션변경작업없이구현가능 Oracle Partitioning은다양한애플리케이션의관리성, 성능, 가용성을개선하기위한 Oracle Database 11g Enterprise Edition의옵션입니다. 파티셔닝을이용하여테이블, 인덱스, IOT(index-organized table) 을보다작은단위로분할하고, 한층세분화된레벨의데이터베이스오브젝트관리및접근을지원할수있습니다. 오라클은비즈니스요구사항의해결을위한다양한파티셔닝방식을포괄적으로제공하고있습니다. 또파티셔닝기능이 SQL 구문의관점에서완전히투명하게구현되므로, OLTP에서데이터웨어하우징에이르기까지어떤애플리케이션에도파티셔닝을적용할수있습니다. Oracle Partitioning 의혜택 파티셔닝은다양한애플리케이션환경에서관리성, 성능, 가용성을극적으로개선하는효과를제공합니다. 8번째세대로진화한 Oracle Partitioning은매우엄격한고가용성요구사항을갖는테라바이트급시스템환경에서그유용성을검증받아왔습니다. 실제로파티셔닝을이용하여쿼리또는유지보수작업의성능을몇배로개선하는경우를드물지않게확인할수있습니다. 또파티셔닝은오래된정보를저가형스토리지디바이스에저장하는접근법인 티어기반아카이빙 (tiered archiving) 을통해총소유비용을극적으로절감할수있게합니다. Oracle Partitioning은대규모환경의정보생명주기관리를위한효과적이면서도단순하고, 동시에매우강력한접근법으로활용될수있습니다. Oracle Partitioning 의기본기능 파티셔닝을이용하면테이블, 인덱스또는 IOT(index-organized table) 을더작은단위로분할할수있습니다. 이렇게분할된데이터베이스오브젝트의조각들을파티션이라부릅니다. ( 또는컴포지트파티션이사용되는경우에는서브파티션이라불립니다.) 각각의파티션은별도의이름을가지며, 서로다른스토리지특성을가질수도있습니다. 예를들어특정파티션의테이블압축기능을활성화하거나, 다른테이블스페이스에저장하거나, 다른 ASM 디스크그룹에배치할수있습니다. 데이터베이스관리자의관점에서볼때, 파티션된오브젝트는일괄적으로또는개별적으로관리가가능한여러개의조각으로구성되며, 따라서오브젝트에대한관리유연성을크게개선할수있습니다. 하지만애플리케이션의관점에서볼때에는파티션 1
된테이블은파티션되지않은테이블과아무런차이가없습니다. 그러므로애플리케이션변경작업은요구되지않습니다. 테이블은 파티셔닝키 (partitioning key) 을통해분할됩니다. 파티셔닝키란특정로우가어떤파티션에위치하는지정의하는일련의컬럼을말합니다. Oracle Database 11g는업계에서가장포괄적인파티셔닝기능과옵션, 그리고최신메커니즘을제공하고있습니다. 또 Partition Advisor를이용하여데이터접근방법에따른테이블파티션방안의권고사항을확인할수있습니다. 아래표는 Oracle Database 11g에서제공되는기본적인파티셔닝전략에대해설명하고있습니다. 파티셔닝전략데이터분할샘플비즈니스케이스 Range Partitioning List Partitioning 연속적인값의영역을기준으로분할 일정한순서가없는값을기준으로파티셔닝 order_date 를기준으로 country 를기준으로 Hash Partitioning Composite Partitioning o Range-Range o Range-List o Range-Hash o List-List o List-Range o List-Hash o Interval-Range * o Interval-List * o Interval-Hash * 해시알고리즘기반 위에서설명된 Range, List, Hash, Interval Partitioning 중두가지테크닉을조합하여사용 customer_id 를기준으로 Orders 테이블에대해 order_date 기준으로 Range 파티셔닝을, Customer_id 를기준으로 Hash 서브파티셔닝을수행 Orders 테이블에대해 order_date 를기준으로 Range 파티셔닝을, 다시 shipment_date 를기준으로 Range 서브파티셔닝수행 위에서설명된파티셔닝전략이외에도, Oracle Database 11g는다음과같은파티셔닝익스텐션을제공합니다. 파티셔닝전략데이터분할샘플비즈니스케이스 Interval Partitioning 동일한크기의간격을기준으로파티셔닝을정의. 첫번째생성되는파티션을제외한모든파티션은조건에맞는데이터가입력되는시점에자동으로생성됨. Range Partitioning 의확장 Orders 테이블을 order_date 기준으로 '01- Jan-2007' 로부터시작해서일정한기간으로파티셔닝 2
REF Partitioning 기본키 - 외래키관계를통해자식테이블파티셔닝을부모테이블로부터상속. 파티셔닝키는자식테이블의실제컬럼에저장되지않음. ( 부모 ) Orders 테이블을 order_date 기준으로 Range Partitioning 수행. ( 자식 ) order_lines 테이블은부모로부터동일한파티셔닝방식을상속. order_date 컬럼은부모테이블 (orders) 에만존재함. Virtual column based Partitioning 위에서설명된파티셔닝테크닉중하나를사용하되, 파티셔닝키는가상컬럼 (virtual column) 을기반으로설정. 가상컬럼은디스크에저장되지않으며메타데이터의형태로만존재. Orders 테이블에고객계좌번호를기반으로 sales region 을유추하는가상컬럼을설정. 그런다음 sales region 을기준으로 orders 테이블의 List Partitioning 을수행. IOT(index-organized table) 에는 Range Partitioning, List Partitioning, Hash Partitioning이적용될수있습니다. Oracle Database 11g은또세가지유형의파티션된인덱스를지원합니다. Local Index: Local Index란파티션된기저테이블과동일한방법으로파티션된인덱스를의미합니다. 각로컬인덱스의파티션은기저테이블의특정파티션에 1대 1로대응합니다. Global Partitioned Index: Global Partitioned Index는테이블의다른파티셔닝키를이용하여파티션된파티션된테이블또는파티션되지않은테이블의인덱스입니다. Global Partitioned Index는 Range Partitioning만을지원합니다. Global Non-Partitioned Index: Global Non-Partitioned Index는기본적으로파티션되지않은테이블의인덱스와동일합니다. 인덱스구조는파티션되지않습니다. 오라클은파티셔닝테이블, 인덱스, IOT 등을위한다양하고강력한대안을제공하며, 어떤비즈니스환경에서든애플리케이션에최적화된파티셔닝테크닉을활용할수있습니다. 그밖에도, 오라클은파티션의추가, 드롭, 삭제, 분할, 병합, 이동, 압축등파티셔닝테이블의관리를위한포괄적인 SQL 커맨드셋을제공합니다. 관리성개선을위한 Oracle Partitioning 의활용 Oracle Partitioning 옵션을이용하여테이블과인덱스를보다작은단위로분할함으로써데이터관리환경을개선하는것이가능합니다. 파티셔닝환경에서는테이블의작은조각들을단위로유지보수작업을수행할수있습니다. 예를들어, 전체테이블을백업하는대신테이블의파티션중하나만을백 3
업할수있을것입니다. 전체데이터베이스오브젝트가아닌파티션단위로작업을실행함으로써유지보수작업의관리편의성을한층개선하는것이가능합니다. 관리성개선을위해파티셔닝을활용하는대표적인경우로데이터웨어하우스의 롤링윈도우 로드프로세스를예로들수있습니다. DBA가 1 주일간격으로테이블에새로운데이터를로드하는상황을가정해봅시다. 이테이블은 Range Partitioning이적용되어있으며각파티션은 1 주일분의데이터를저장하고있습니다. 따라서로드과정에서는단순히새로운파티션을추가하기만하면됩니다. 전체테이블을수정하는것보다새로운파티션을하나추가하는것이 DBA에게는훨씬편리할것입니다. 파티션된테이블의데이터를삭제하는경우도마찬가지입니다. DELETE 커맨드를사용하여테이블내의데이터를일일이삭제하는대신파티션하나를드롭처리함으로써작업을훨씬쉽고빠르게완료할수있습니다. 성능개선을위한 Oracle Partitioning 의활용 데이터의규모가계속적으로증가하면서시스템성능이저하되는문제가자주제기되곤합니다. Oracle Partitioning 을이용하여조회대상데이터의수를제한함으로써, 파티션되지않은테이블에서는성취하기어려운수준의성능개선효과를확인할수있습니다. Oracle Partitioning 옵션이성능측면에서제공하는효과가아래와같습니다. Partitioning Pruning: Partitioning Pruning 은파티셔닝을이용하여성능을개선하기위한가장단순하면서도가장확실한방법입니다. 애플리케이션이사용하는 Shipments 테이블에배송히스토리기록이저장되어있고, 이테이블을매일단위로파티셔닝된다고가정해봅시다. 하루동안의배송내역을조회하는쿼리는 Shipments 테이블내에서단하나의파티션에만접근할것입니다. Shipments 테이블에 2 년간의히스토리데이터가저장되어있다면, 쿼리는 730 개의파티션이아닌단하나의파티션만을접근하는셈입니다. 결과적으로, Partition Pruning을이용함으로써 700 배가량의성능개선효과를얻을수있습니다. Partition Pruning은오라클의다른성능관련기능과효과적으로연동됩니다. 오라클은인덱싱, 조인, 병렬액세스등의테크닉에서 Partition Pruning을활용할수있도록지원할예정입니다. Partition-wise Join: Partition-wise Join을이용하여멀티-테이블조인작업의성능을개선할수있습니다. Partition-wise Join은서로다른두개의테이블을조인처리함으로써적용되며, 두테이블은조인키 (join key) 를기준으로파티셔닝됩니다. Partition-wise Join은대규모조인작업을보다작은크기로분할함으로써조인실행속도를개선해줍니다. 이테크닉은순차적, 병렬적실행모델에서모두뛰어난효과를제공합니다. 가용성개선을위한 Oracle Partitioning 의활용 파티션된데이터베이스오브젝트는파티션독립성 (partition independence) 를제공합니다. 파티션독립성은고가용성전략에서매우중요한비중을차지하는개념입니다. 테이블의특정파티션을사용할수없고나머지파티션은모두온라인상태인경우를예로들어봅시다. 애플리케이션은파티션된테이블에여전히쿼리와트랜 4
관련제품및서비스 Oracle Partitioning 은 Oracle Database 11g Enterprise Edition 의옵션으로제공됩니다. 잭션을실행할수있습니다. 데이터베이스작업이사용불가능한파티션에접근하지않는이상, 모든작업은성공적으로실행됩니다. 또, 파티셔닝을통해예정된다운타임을단축할수있습니다. 파티셔닝이제공하는성능효과로인해, 데이터베이스관리자가수행하는유지보수작업은상대적으로짧은시간안에완료될수있습니다. Oracle Partitioning 을이용한정보생명주기관리 Oracle Partitioning은가능한한저렴한비용으로대량의데이터를관리해야하는오늘날의환경에서최적화된대안을제공합니다. 개별파티셔닝의독립성은 계층화된아카이빙 (tired archiving) 전략을위한핵심기반으로활용됩니다. 특히히스토리데이터를저장한테이블의경우, 각각의파티션 ( 또는파티션그룹 ) 을서로다른스토리지계층에저장함으로써각파티션에적합한물리적특성과비용효율성을제공할수있습니다. 예를들어, 2 년간의데이터를저장한 Orders 테이블에서최근분기의데이터만을고가의하이엔드스토리지티어에저장하고나머지 ( 약90% 의 ) 데이터는저가형스토리지티어에저장하는방법을사용할수있습니다. Oracle Partitioning을활용함으로써, 엔드유저에게제공되는서비스에영향을미치지않은상태에서스토리지비용을극적으로절감하고 (50% 이상의비용절감사례도쉽게찾아볼수있습니다 ), 저장된정보의총소유비용을최적화하는것이가능합니다. Oracle Partitioning 의범용성 Oracle Partitioning을이용하여거의모든종류의데이터베이스애플리케이션의관리성, 성능, 가용성을혁신적으로개선할수있습니다. 파티셔닝을최신애플리케이션에적용하고, 애플리케이션의성공적구현을보장하기위한핵심테크놀로지로활용하는것이가능합니다. 또한편으로, 관리환경을단순화하고비용을절감하기위한목적에서일반데이터베이스애플리케이션에파티셔닝을적용할수도있습니다. 파티셔닝기능의개선이라는관점에서볼때, Oracle Database 11g는 1997년 Oracle Partitioning이처음소개된이후가장의미있는버전으로서출시되었습니다. 오라클은오라클데이터베이스의새로운메이저버전이발표될때마다새로운파티셔닝테크닉을추가하고, 확장성을개선하고, 관리성을향상시키는등Oracle Partitioning의기능을개선해왔습니다. 오라클은향후에도새로운파티셔닝테크닉을추가적으로구현함으로써고객의비즈니스요구사항에최적화된환경을지원할예정입니다. Copyright 2007, Oracle. All Rights Reserved. 본문서는정보제공만을목적으로제공되며, 문서의내용은사전공지없이변경될수있습니다. 본문서에는오류가포함되어있을수있으며, 상업성또는특정목적의부합성에대한명시적, 묵시적인일체의보장을제시하지않고있습니다. 오라클은본문서에관련하여직접적 / 간접적으로발생하는일체의법적책임또는계약상의의무를거부합니다. 본문서는오라클의사전서면승인없이어떤목적, 어떤방법으로도전자적 / 기계적인형태로복제, 전송될수없습니다. 오라클은 Oracle Corporation 및계열사의공식등록상표입니다. 다른이름은해당업체의공식등록상표일수있습니다. 5