본문 바로가기

oracle

오라클 Heatmap, ADO, ILM 기능 테스트 핸즈온 - Compression Tiering 지난번에 오라클 Heatmap, ADO 의 개요와 ADO 커맨드 샘플 을 정리해봤습니다. 이번에는 처음부터 끝까지 쭉 순차적으로 핸즈온(따라해보기)을 진행해보겠습니다. 오라클 ILM 에는 Compression Tiering 과 Storage Tiering 2가지가 있습니다. 여기에서는 Compression Tiering 만 먼저 해보겠습니다. 간단히 절차를 먼저 체크하면, 아래 순서로 작업하면 됩니다. 1) DB 파라메타 변경 2) 테스트할 샘플 테이블 생성 및 데이터 생성 3) ADO Policy 생성 4) ADO Policy 를 수동으로 강제 적용 5) ADO Policy 삭제 실제 운영에 적용하는 상황이라면 1), 3) 번만 있으면 됩니다. 운영DB에는 테이블이 이미 있으니 2)번은 필요없고, AD.. 더보기
테이블 압축방식 체크 스크립트, Table Compression Type Check Script Oracle DBMS 는 DB 내에 들어있는 테이블 데이터에 대해 압축기능을 지원합니다. 공짜(무료)로 사용할 수 있는 Basic Compression 이 있고, 유료로 사용할 수 있는 ACO (Advanced Compress Option) 압축이 있고, Exadata(엑사데이터) 같은데에서만 사용할 수 있는 HCC (Hybrid Columnar Compression) 압축이 있습니다. Basic Compression 은 테이블에 데이터를 벌크(Bulk) 로딩할 때만 동작(압축) 됩니다. CTAS 문장이나 Insert /*+ apppend */ .. 문장을 사용해서 처음에 대량 로딩할 때만 압축되는 방식입니다. 이건 무료입니다. ACO 의 경우는, 유료옵션인데 좀 더 좋죠~ 당근~ 벌크 로딩이 아니어도,.. 더보기
오라클 Heatmap, ADO, ILM 기능 설명 - Oracle 12c New Feature 오라클 12c DB에서 추가된 신기능들중에 Heatmap, ADO 라는 게 있습니다. 얘네들은 Database 내에서 ILM (Information Lifecycle Management) 을 가능하게 해주는 기능입니다. ILM 이란 한글로는 "정보생애주기관리" 라고 할 수 있는데, 정보 즉 DB내의 데이터를 Lifecycle 에 따라 관리하겠다는 것입니다. Lifecycle 이란 태어나서 죽을때까지를 말하죠. 데이터가 처음 Create/Insert 되면 태어나는 것이고, 한참 활발하게 조회되고, Update 되다가, 말년에는 거의 사용이 없죠... 가뭄에 콩나듯이 1년에 한두번 조회할까... 이게 데이터의 생애(Lifecycle)이고, 이것에 맞추어 관리를 하겠다는 의미입니다. 여기서 관리(Managem.. 더보기
오라클 Parallel 병렬처리 Default DOP (Default Degree of Parallelism) 앞에서 Oracle DOP 에 대해서 살펴봤습니다. 이번에는 Default DOP 에 대해서 체크해보겠습니다. DOP는 병렬도였죠. Default DOP 는 말그대로 디폴트로 잡히는 병렬도입니다. 아래에서 EMP 테이블에 parallel 옵션을 주어 degree 를 변경했습니다. 이때, parallel 뒤에 DOP 값을 명시하지 않았습니다. 이렇게 DOP 값을 명시하지 않을 때, Default 로 잡히는 DOP 값을 Default DOP 라고 부릅니다. 그럼, Default DOP 는 어떻게 결정될까요? For a single instance, DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT For an Oracle RAC configuration, DOP = PARALLEL.. 더보기
오라클 병렬처리 Parallel DOP (Degree of Parallelism) DOP 란 Degree Of Parallelism 의 약어로, 병렬도라고 합니다. 병렬처리할 때 병렬프로세스를 몇개 띄울 것인지를 의미합니다. DOP 가 20 이면 20개의 병렬프로세스를 띄워서 작업한다는 의미입니다. 오라클에서 병렬처리는 DB서버의 자원(CPU, Memory, Disk I/O)을 최대한 사용해서 작업을 빠르게 끝낼 수 있는 아주 유용한 기능입니다. 하지만, 조심해야 할 부분이 하나의 작업에 대해서만 병렬처리를 하면 문제없지만, 동시에 수십개의 병렬처리가 돌아가는 상황이 발생한다면? ㅋㅋ 장애로 이어질 수 있겠죠... 이런 일이 종종 발생합니다. 개발자가 어플리케이션의 SQL에 /*+ parallel */ 힌트를 박아놨는데, 이 어플리케이션이 뜻하지 않게 너무 많이 실행되는 경우 ㅎㅎ 난.. 더보기
오라클 파티션테이블 기본개념 정리 (Oracle Partition Table Basics) 오라클 파티션테이블은 하나의 큰 테이블을 물리적으로 나눠놓은 것입니다. 물리적으로 나눠놨지만, 논리적으로는 하나의 테이블로 간주됩니다. 왼쪽 그림처럼 Sales 테이블에 1월데이터부터 5월데이터까지 하나의 통테이블에 몰아서 넣을수 있습니다. 하지만, 파티션테이블을 사용하게되면 오른쪽 그림처럼 월마다 다른 세그먼트에 Sales 데이터를 나눠서 넣을 수 있습니다. 이렇게 나눠서 넣어놔도 사용자는 1월~5월치 데이터가 마치 하나의 Sales 테이블에 들어있는 것처럼 사용할 수 있습니다. 오라클에서는 Object, Segment 라는 개념을 사용합니다. 저장공간을 가지는 개념이 Segment 에 해당합니다. 즉, 위 파티션된 Sales 테이블에서는 5개의 Segment 에 데이터가 나뉘어 들어가게 됩니다. 각각.. 더보기
오라클 복합파티션(Composite Partition) Hash + Range 샘플 (11g ~ ) 오라클은 Range, List, Hash 파티션을 지원하고, 이들간의 다양한 조합을 지원합니다. 이중에서 아래는 Hash Partition + Range Sub Partition 샘플입니다. create table SALES ( sales_no number, sale_year number, sale_month number, sale_day number, customer_name varchar2(30), birth_date date, price number, state varchar2(2) ) partition by hash (birth_date) subpartition by range (sales_no) subpartition template ( subpartition S1 values less than.. 더보기
오라클 복합파티션(Composite Partition) Hash + List 샘플 (11g ~ ) 오라클은 Range, List, Hash 파티션을 지원하고, 이들간의 다양한 조합을 지원합니다. 이중에서 아래는 Hash Partition + List Sub Partition 샘플입니다. create table SALES ( sales_no number, sale_year number, sale_month number, sale_day number, customer_name varchar2(30), birth_date date, price number, state varchar2(2) ) partition by hash (birth_date) subpartition by list (state) subpartition template ( subpartition S1 values ('MA','NY','CT.. 더보기