📌 고정 게시글

📢 공지합니다

이 게시글은 메인 페이지에 항상 고정되어 표시됩니다.

최코딩의 개발

CH5 그 외 것들 본문

자격증/sqld

CH5 그 외 것들

seung_ho_choi.s 2023. 9. 5. 20:24
728x90

PL/SQL 

- SQL을 확장한 절차적 언어이다. 

- Block 구조로 되어있어 각 기능별로 모듈화가 가능하 다.

- IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다.

- 오라클에 내장되어 있다.

- 응용 프로그램의 성능을 향상시킨다. 

- 여러 SQL 문장을 Block으로 묶고 한 번에 Block 전부를 서버로 보내기 때문에 통신량을 줄 일 수 있다.

- 이식성이 좋고 예외 처리 가능하다. 

- DDL 문장을 실행할 때 EXECUTE IMMEDIATE를 사용해야 한다. 

 

트리거

- DML 실행 후 자동으로 실행

- TCL 사용 못함 

- 데이터의 무결성과 일관성을 위해서 사용자 정의 함수를 사용함

 

프로시저

- EXECUTE 명령으로 실행

- TCL 실행 가능 

 

옵티마이저

가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심엔진이다.

https://coding-factory.tistory.com/743

RBO(규칙 기반 옵티마이저)

- 실행 속도가 빠른 순으로 규칙을 먼저 세워두고 우선순위가 앞서는 방법을 채택

- ROWID, 클러스터 조인

- 이것은 우선순위에 순위가 매겨져 있기 때문에 실행계획이 세워지는것을 미리 예측할 수 있고 

내가 원하는 대로 실행 계획이 세워지도록 유도할 수 있다. 

- 이것은 적절한 인덱스가 존재하면 항상 인덱스를 사용하려고 한다. 

 

CBO(비용 기반 옵티마이저)

- 실행 계획을 세운뒤 비용이 최소한으로 나온 실행 계획을 수행함 

- CPU, I/O 자원량 등을 계산하여 효율적일 것으로 예상되는 실행계획을 선택함 

- 인덱스 스캔, 전체테이블 스캔이 유리할 수 있다. 

 

실행계획

- 이것은 SQL 처리를 위한 실행 절차와 방법을 표현한 것이다. 

- 조인 방법, 조인 순서, 엑세스 기법 등이 표현된다. 

 

인덱스

- 정렬 순서를 내림차순으로 하면 내림차순 정렬도 가능하다.

- RBO는 규칙에 따라 적절한 인덱스가 존재하면 전체 테이블 스캔보다는 항상 인덱스를 사용하려고 한다. 

- 인덱스를 구성하는 컬럼 이외의 데이터를 UPDATE할 때에는 인덱스로 인한 부하가 발생하지 않는다. 

- 이것의 목적은 조회 성능을 최적화 하는 것이다. 

- DML 처리 성능을 저하시킬 수 있다. 

- 인덱스를 스캔하여 테이블로 데이터를 찾아가는 방식이 랜덤 엑세스(인덱스 엑세스)인데, 이러한 작업은 부하가 

크기 때문에 매우 많은 양의 데이터를 읽을 경우에는 테이블 전체 스캔이 유리할 수 있다. 

- SQL의 클러스터형 인덱스는 ORACLE의 IOT와 매우 유사하다. 

- 조회만을 위한 것이며, 삽입, 삭제, 갱신 연산의 속도는 오히려 부담된다. 

 

B-트리 인덱스

- 브랜치 블록과 리프 블록으로 구성되며 브랜치 블록은 분기를 목적으로 하고 리프블록은 인덱스를 

구성하는 컬럼의 값으로 정렬된다. 

- 일치 및 범위 검색에 적절한 구조이다. 

 

BITMAP 인덱스

- 시스템에서 사용될 질의를 시스템 구현 시에 모두 알 수 없는 경우인 DW 및 AD-HOC 질의 환경을 위해서

설계되었으며 하나의 인덱스 키 엔트리가 많은 행에 대한 포인터를 저장하는 구조이다. 

 

CLUSTERED 인덱스

- 인덱스의 리프 페이지가 곧 데이터 페이지이며, 리프 페이지의 모든 데이터는 인덱스 키 컬럼 순으로 

물리적으로 정렬되어 저장된다. 

 

JOIN

NL Join

- 중첩된 반복문과 유사한 방식으로 조인을 수행 

- 반복문의 외부에 있는 테이블을 선행 테이블 또는 외부 테이블이라고 함

- 반복문 내부에 있는 테이블을 후행 테이블 또는 내부 테이블이라고 함 

- 랜덤 방식으로 데이터를 엑세스 

- OLTP의 목록 처리 업무에 많이 사용 

- Driving Table의 개념이 중요한 조인 방식이다. 

 

Sort Merge Join

- 스캔 방식 사용 

- 동등 조인 뿐만 아니라 비동등 조인에 대해서 조인 작업 가능 

- 데이터를 집계하는 업무에 많이 사용

- Driving Table의 개념이 중요하지 않은 조인 방식이다. 

- 조인 조건의 인덱스의 유무에 영향을 받지 않는다. 

 

Hash Join

- 대량의 조인 작업은 CPU 작업 위주로 처리하는 이것이 유리함

- 두 테이블이 너무 커서 소트부하가 심할 때 유용하다.

- 동등 조인일 때만 작업 가능

- 조인 조건의 인덱스의 유무에 영향을 받지 않는다. 

 

참고로 EXISTS절은 실행계획상에 주로 SEMI JOIN으로 나타낸다. 

 

 

 

728x90

'자격증 > sqld' 카테고리의 다른 글

CH4 관리구문  (1) 2023.08.28
CH3 SQL 활용(2)  (0) 2023.08.22
CH3 SQL활용  (0) 2023.08.21
CH2 SQL 기본(2)  (0) 2023.08.15
CH2 SQL 기본  (0) 2023.08.15