재밌고 어려운 IT를 이해해보자~!

Tibero 본문

개인공부

Tibero

언제나즐거운IT 2024. 12. 6. 13:45

Tibero 란


티맥스 소프트에서 2006년에 개발한 한국산 DBMS 이다..

티베로의 데이터베이스 모델은 RDBMS 이며, 데이터베이스 클러스터링, 병렬 쿼리 옵티마이저 기능을 제공하여 고가용성 및 고성능을 보장한다.

또한 SQL 들을 포함해서 오라클의 제품과 거의 동일한 호환성을 제공함에 따라 오라클 DB의 대안으로 주장되고 있다!

 

사용 이유

티베로는 실제 오라클 DB를 참고해서 만든 DB이다.
그런데 오라클을 쓰지 않고 티베로를 사용해야할 이유는 오라클을 사용하면 유지 관리 및 라이센스 비용을 연간 $40000 ~ $50000 지불해야 한다.
그에 비해 티베로는 오라클 절반 가격으로 운영하며 특히 한국 기업이라면 직접 유지보수도 가능한 장점이 있다.
즉, 비용 절감이 뛰어나다.

 

주요 기능

대용량 데이터를 관리하고 안정적인 비지니스의 연속성을 보장하기 위해 아래와 기능을 갖추고 있다.

  • 분산 데이터베이스 링크
    데이터베이스 인스턴스별로 각각 서로 다른 데이터를 저장하는 기능이다. 이 기능을 통해 원격 데이터베이스에 저장된 데이터를 네트워크를 통해 읽기 및 쓰기를 수행할 수 있다.
  • 데이터 이중화
    현재 운영 중인 데이터베이스에서 변경된 모든 내용을 Standby DB로 복제하는 기능이다. 즉, 네트워크를 통해서 변경 로그(Change log)만 전송하면 Standby DB에서 데이터에 적용하는 방식이다.
  • 데이터베이스 클러스터
    여러 개의 데이터베이스 인스턴스가 공유 디스크를 이용하여 동일한 데이터베이스를 공유할 수 있다. 이때 각 데이터베이스 인스턴스는 내부의 데이터베이스 캐시(Database cache) 사이의 일관성을 유지하는 기술이 매우 중요하다. 따라서 이러한 기술도 Tibero Active Cluster에 포함하여 제공하고 있다. 보다 자세한 내용은 “제10장 Tibero Active Cluster”를 참고한다.
  • 병렬 쿼리 처리
    기업의 데이터 크기는 계속적으로 증가하고 있다. 대용량 데이터를 처리하기 위해 서버의 리소스를 최대한 활용할 수 있는 병렬 처리 기술이 필수적으로 요구되고 있다.
  • 쿼리 최적화기(Optimizer)
    쿼리 최적화기는 스키마 객체의 통계 정도를 바탕으로 다양한 데이터 처리 경로들을 고려하여 어떤 실행 계획이 가장 효율적인지를 결정한다.

쿼리 최적화기의 주요기능

- 최적화 목표

사용자는 최적화기의 최종 목표를 바꿀 수도 있는데 다음의 두 가지 목표를 선택할 수 있다.

전체 처리 시간: ALL_ROWS 힌트를 사용하면 최적화기는 마지막 row까지 얻어내는 시간을 최대한 단축하도록 최적화한다.
최초 반응 시간: FIRST_ROWS 힌트를 사용하면 최적화기는 첫 번째 row를 얻어내는 시간을 최대한 단축하도록 최적화한다.

- 질의 변형

질의의 형태를 바꿔서 더 좋은 실행 계획을 만들 수 있도록 한다. 질의 변형의 예에는 뷰 병합, 부질의 언네스트, 실체화 뷰의 사용 등이 있다.

- 데이터 접근 경로 결정

데이터를 데이터베이스로부터 꺼내오는 작업은 전체 테이블 스캔, 인덱스 스캔, rowid 스캔 등의 다양한 방법을 통해서 수행될 수 있다. 각 방법마다 필요한 데이터의 양이나 필터링의 형태 등에 따라 장단점이 있어서 질의에 따라 최적의 접근 방식이 다르다.

- 조인 처리 방식 결정

여러 테이블에서 데이터를 꺼내오게 되는 조인의 경우 최적화기는 조인의 순서와 방법을 결정해야 한다. 여러 테이블 간의 조인일 때 어떤 테이블을 먼저 조인할지에 대한 순서와 각각의 조인에 있어서 중첩 루프 조인, 합병 조인, 해시 조인 등의 다양한 방법 중 어떤 것을 사용할지가 실행 속도에 큰 영향을 미치게 된다.

- 비용 추정

각각의 실행 계획에 대해 비용을 추정한다. 비용 추정을 위해서 필요한 predicate의 선택도나 각 실행 단계에서 데이터의 row 수 등을 통계 정보를 사용해서 추정하고 이를 바탕으로 각 단계에서의 비용을 추정한다.

지원하는 언어

티베로에서 지원하는 언어는 C,C#,C++,Cobol,Java,Objective-C,Perl,PHP,Python,Ruby,Visual Basic 등이 있다.

'개인공부' 카테고리의 다른 글

Kubernetes  (0) 2024.12.13
Linux, Unix  (0) 2024.12.08
CMS  (0) 2024.11.25
안드로이드 스튜디오 구조  (0) 2024.11.19
코틀린  (0) 2024.11.18
Comments