IT 기술/Database(2)
-
[DB] 데이터베이스 인덱스(Index) 정의, 종류, 설계 : SQL 검색성능 향상
인덱스(Index)란? 인덱스(Index)는 데이터 검색속도 향상을 위하여 테이블에 저장된 로우(row)를 식별가능하도록 저장한 데이터베이스 오브젝트입니다. 일반적으로 책을 볼 때 목차, 차례가 존재하는데 이것은 데이터베이스의 인덱스와 유사한 개념입니다. 목차부터 찾으면 원하는 정보가 몇 페이지에 있는지 금방 알 수 있고 어느 정보가 어떻게 구성되어 있는지 전체적으로 파악하기도 용이합니다. B* Tree 기반 인덱스(Index) 인덱스(Index)는 Balanced Tree 기반 인덱스로 Root 블록, Branch 블록, Leaf 블록으로 구성되어 있습니다. Balanced Tree는 모든 Leaf 블록이 동일한 Depth를 유지하도록 하여 균형을 유지합니다. 그러면 데이터 검색을 최대 Depth 이하..
2022.09.04 -
[DB] 데이터베이스 옵티마이저
옵티마이저란 SQL문을 수행할 최적의 액세스 경로를 찾아내고 실행계획을 생성하는 DB의 핵심엔진입니다. 최적의 액세스 경로를 찾기 위하여 Rule 또는 통계정보를 활용하여 비용이 적게 드는 액세스 경로를 선택합니다. 사용자가 작성한 SQL을 Parser로 파싱한 다음 옵티마이저 mode에 따라 옵티마이저가 선택됩니다. CBO는 미리 생성한 통계정보를 이용하여 실행계획을 생성하게 됩니다. 옵티마이저에서 생성한 실행계획을 SQL 실행엔진에서 실행하고 실행결과를 사용자에게 보여줍니다. 옵티마이저 유형 옵티마이저는 크게 Rule 기반 옵티마이저(RBO)와 비용 기반 옵티마이저(CBO) 이렇게 2가지 유형이 있습니다. 대부분 RDBMS는 CBO를 지원하며, Oracle 10g부터 RBO 지원을 중단하였다고 합니다..
2022.07.11