현재 프로젝트를 수행하고 있는 업체에서 DB 를 Exadata를 사용하고 있다고 한다. 처음에 Oracle Exadata를 사용한다기에 Oracle 과 어떤 차이가 있는지 잘 몰랐는데 알고 보니 곳곳에서 차이점이 꽤 있는 듯 하다.
잘 아는 것은 아니지만, 찾아보고 검색한 대로 내용을 정리해 보려고 한다.
1. Exa데이터는 무엇인가?
우선 데이터의 단위에 대해서 알면 Exadata에 대한 접근이 쉬울 듯 하다.
Exa는 기가 - 테라 - 페타 다음의 데이터 기억 용량의 단위이다. 한마디로 매우 큰 데이터의 용량 단위라고 생각하면 된다. 시대가 발전하면서 데이터가 저장할 수 있는 크기가 점점 커졌지만, 그에 따라 데이터를 처리하는 시간 또한 늘어나고 데이터를 처리하는 것에 대해 오류가 발생할 확률 또한 높아진다.
그를 위해서 Oracle에서는 Exadata를 저장할 스토리지를 위해 Oracle Exadata를 빠르고 효율적으로 처리하고 저장하게 하기 위한 스토리지를 개발하였는데 그것이 바로 Oracle Exadata다. 기존에는 Oracle에서 하드웨어를 개발하지 않았었는데, Oracle Exadata 스토리지를 개발하며 오라클 DB전용의 스토리지 하드웨어를 만든 것이다.
2. Oracle Exadata, 주요 기능은 무엇일까?
기존의 비 엑사데이터 저장장치와 다른 점이라고 한다면, 기존의 스토리 저장장치가 하드디스크가 아닌 플래시로 구성했다는 점이다. 그로 인해서 디스크 I/O의 성능이 극대화 되면서 데이터의 처리 속도 면에서 비 엑사데이터에 비해 10배 이상의 속도를 낼 수 있다고 한다. 그러므로 엄청난 고객의 데이터와 거래를 관리하는 금융권, 증권사, 통신사를 중심으로 해당 스토리지를 사용하는 경우가 늘어나고 있다고 한다.
또한 스토리지 서버에서 DB 서버로 전송하는 데이터 양을 최소화 하기 위해서 필요한 블록만 엑세스 하는 Smart Sacn 방식을 사용하여 데이터 리드 효율을 높일 수 있었다. 조건을 만족하는 로우 중 필요한 컬럼만 선별해서 DB서버로 전송하는 것이다. (그래서 현업 담당자들이 서브 쿼리에 아스타(*)를 쓰는 것을 극혐했는지 알 것도 같다..)
Smart Scan 방식을 지원하는 용도로 Storage Index기능을 지원한다고 한다. 테이블을 각 영역으로 나눠서 컬럼의 최소, 최대값을 정한다. 한마디로 파티션을 나눠서 저장한다고 생각하면 편할 것 같다. Storage Index 기능이 있다면, where 조건을 걸었을 때 필요한 부분만 뽑아서 처리하여 리드하므로 더욱 처리 속도가 빨라지는 것이다.
다음 시간에는 Exadata를 효율적으로 사용할 수 있는 방안에 대해서 포스팅을 해보려고 한다. 나도 이번에 안 부분이며, 정리가 필요하여 자츰 지식을 늘려가보려고 한다.
Ref.
https://sarc.io/index.php/oracledatabase/562-about-oracle-exadata-1
https://sarc.io/index.php/oracledatabase/571-2
'Code > Oracle' 카테고리의 다른 글
[Oracle] Oracle Exadata의 압축방식 (Exadata Hybrid columnar Compression, EHCC) (0) | 2022.05.21 |
---|---|
[Oracle] 오라클 append와 append_values 힌트, 사용방법 (0) | 2022.04.23 |
[Oracle] 오라클 힌트(hint)의 개념, 사용법 알아보기 (0) | 2022.03.27 |
[Oracle] 오라클 WITH절을 사용하여 임시테이블 만들기 (0) | 2022.03.12 |
[Oracle] SQL 병렬 힌트를 부여하여 쿼리 수행시간 단축하기 (0) | 2022.02.26 |