과목2 SQL 기본 및 활용 문제풀이(2)

Song Chae Won·2023년 8월 27일
0

DATABASE_STUDY

목록 보기
19/19
post-thumbnail

➕ 인덱스

  • 인덱스를 생성할 때 정렬 순서를 내림차순으로 설정하면 내림차순으로 정렬
  • 비용기반 옵티마이저는 SQL을 수행하는데 있어 소요되는 비용을 계산하여 실행 계획을 생성하므로 인덱스가 존재하더라도 전체 테이블 스캔이 유리하다고 판단할 수 있다.
  • 규칙기반 옵티마이저는 적절한 인덱스가 존재하면 항상 인덱스를 사용하려고 한다.
  • 인덱스 범위 스캔은 결과가 없으면 한 건도 반환하지 않을 수 있다.

➕ 관계형 데이터베이스의 인덱스

  • 기본 인덱스(Primary Key)는 UNIQUE & NOT NULL 제약 조건을 가진다.
  • 보조 인덱스는 UNIQUE 인덱스가 아니라면 중복 데이터의 입력이 가능함
  • 자주 변경되는 속성을 인덱스로 선정할 경우, UPDATE, DELETE 성능에 좋지 않은 영향을 미치므로 인덱스 후보로 적절치 않음
  • 테이블의 전체 데이터를 읽는 경우는 인덱스를 사용하지 않는 FTS를 사용한다.
  • 인덱스는 조회만을 위한 오브젝트이며, 삽입, 삭제, 갱신의 경우 오히려 부하를 가중한다.
  • 인덱스가 존재하는 상황에서 데이터를 입력하면, 매번 인덱스 정렬이 일어나므로 데이터 마이그레이션 같이 대량의 데이터를 삽입할 때는 모든 인덱스를 제거하고 삽입 이후에 인덱스를 다시 생성하는 것이 좋다.

➕ 계층형 질의문

  • START WITH절은 계층 구조의 시작점을 지정하는 구문
  • ORDER SIBLINGS BY절은 형제 노드 사이에서 정렬을 지정하는 구문
  • 순방향 전개란 부모 노드로부터 자식 노드 방향으로 전개하는 것
  • 루트 노드의 LEVEL 값은 1이다
  • SQL Server에서 계층형 질의문은 CTE(Common Table Expression)를 재귀 호출함으로써 계층 구조를 전개한다.
  • SQL Server에서 계층형 질의문은 앵커 멤버를 실행하여 기본 결과 집합을 만들고 이후 재귀 멤버를 지속적으로 실행함
  • 오라클의 계층형 질의문에서 WHERE절은 모든 전개를 진행한 이후 필터 조건으로서 조건을 만족하는 데이터만을 추출하는데 활용됨
  • 오라클의 계층형 질의문에서 PRIOR 키워드는 SELECT, WHERE절에서도 사용할 수 있다.
profile
@chhaewxn

0개의 댓글