SQL 9

[인덱스 설계 방안 1]

인덱스 구성 할때의 컬럼 순서 결정 원리 - 두가지 선택 기준 1. 조건절에 항상 사용되거나, 자주 사용하는 컬럼을 사용 2. '=' 조건으로 자주 조회되는 컬럼들을 앞쪽에 둔다. - 인덱스 설계는 공식이 아닌 전략과 선택의 문제 개별 쿼리기준으로 어떤 쿼리가 좋은지 명확히 구분할 수 있지만. 시스템 전체적인 관점에서의 효율은 또 다른 기준임 : 쿼리 수행 빈도, 업무상 중요도 , DML 부하, 저장공간, 관리비용 아래조건에 인덱스 설계해봅시다. 조건1) where 고객번호 = 1 and 거래일자 between '20010101' and '20111231' 조건2) where 상품번호 = 'A' and 거래일자 between '20010101' and '20111231' 조건3) where 고객번호 = ..

SQL 2024.02.19

테이블 Prefech & 인덱스 Prefetch

Prefech 란? DBMS는 디스크 블록을 읽을 때 곧이어 읽을 가능성이 있는 높은 블록을 미리 읽어오는 기능 디스크I/O가 비용이 크기 때문에 한번의 I/O Call을 통해 다량의 블록을 퍼 올려 성능향상에 도움을 줌 Prefech는 한번에 여러개 single block IO를 동시에 수행 ** 테이블 Prefetch, 인덱스 Prefetch는 인접하지 않을 블록을 서로다른 익스텐트에 위치한 블록을 배치방식으로 적재 - 인덱스 Prefetch : 브랜치 블록에서 앞으로 읽게 될 리프 블록 주소를 미리 얻을 수 있으므로 I/O call이 필요한 시점에 미리 캐싱 해 두는것 . sequential 액세스 성능을 향상 시키려고 Multiblock I/O와 인덱스 Prefech 같은 기능을 사용 인덱스 Pr..

SQL 2022.01.16

[계층형 질의]

-계층형데이터가 존재하는 경우 데이터를 조회하기 위해 계층형 질의를 사용 계층형 데이터란 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말함 1. ORACLE 계층형 질의 - START WITH 절 : 계층구조 전개의 시작 위치를 지정하는 구문(즉 루트데이터를 지정함) - CONNECT BY 절 : 다음에 전개될 자식 데이터를 지정하는 구문 - PRIOR 절 : CONNECT BY절에 사용되며, 현재 읽은 칼럼을 지정 PRIOR 자식=부모 (부모-->자식) 방향으로 전개 PRIOR 부모=자식 (자식-->부모) 방향으로 전개 - NOCYCLE : 데이터를 전개하면서 이전에 나타났던 데이터가 나타나면 사이클이 형성되었다라고 하며, 사이클이 발생한 데이터는 런타임 오류가 발생. 그렇지만 NOC..

SQL 2021.12.21

집합 연산자 (SET OPERATOR)

- 조인을 이용하지 않고 연관된 데이터를 조회하는 방법 - 여러개의 질의결과를 연결하여 하나로 결합하는 방식(2개이상의 질의 결과를 하나의 결과로 만들어줌) - SELECT 절의 칼럼 수가 동일하고 동일위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능 해야함 집합연산자 의미 UNION SQL 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 출력 UNION ALL SQL 결과에 대한 합집합으로 중복된 행도 그래도 결과 표시(단순히 결과만 모아놓음) 여러질의 결과 상호배타적일때 많이 사용 INTERSECT 여러 개의 SQL 문의 결과에 대한 교집합. 중복된 행은 하나의 행으로 만듬 EXCEPT 앞의 SQL문의 결과에서 뒤의 SQL문의 결과에 대한 차집합. 중복된행은 하나의 행으로 만듬

SQL 2021.12.20

OUTER JOIN

** T1 테이블이 T2테이블과 조인을 하되, T2의 조인 데이터가 있는 경우 T2데이터와 함께 출력하고, T2의 조인데이터가 없는 경우에도 T1의 모든 데이터를 출력하고자 할 경우 사용. OUTER JOIN 기준이 되는 테이블이 조인 수행시 무조건 드라이빙 테이블이 됨. LEFT/RIGHT/FULL OUTER JOIN & CROSS JOIN - LEFT OUTER JOIN : 조인 수행시 좌측에 있는 테이블의 데이터를 읽은 후 우측 테이블에서 JOIN 대상 데이터를 읽어온다. 조인 시 같은 값이 있을때는 해당 값을 가져오고, 같은 값이 없을 경우 우측테이블 데이터를 NULL로 채운다. - RIGHT OUTER JOIN : 조인 수행시 우측에 있는 테이블의 데이터를 읽은 후 좌측 테이블에서 JOIN 대상..

SQL 2021.12.19

INNER & NATURAL JOIN

1. INNER JOIN - 조인조건에서 동일한 값이 있는 행만 반환 2. NATURAL JOIN - NATURAL JOIN은 두 테이블 간의 동일한 이름을 갖는 모든 칼럼들에 대해 equi(=)JOIN을 수행 - JOIN이 되는 테이블의 데이터 성격과 칼럼명등이 동일해야 하는 제약 조건이 있음 NATURAL JOIN이 명시되면, 추가로 USING, ON, WHERE 절에서 JOIN 조건을 정의할수 없음 (SQL SERVER 지원안함) JOIN 컬럼을 별도 지정하지 않았지만, 두 테이블의 DEPTNO라는 공통된 칼럼을 자동으로 인식하여 JOIN을 처리한 것 JOIN에 사용된 칼럼들은 같은 데이터 유형이어야 하며, ALIAS나 테이블명과 같은 접두사를 붙일수 없음 모든칼럼 조회 시(*) 칼럼 순서 지정하지..

SQL 2021.12.18

일반 집합 연산자 & 순수 관계 연산자

## 일반 집합 연산자 1. UNION & UNION ALL - UNION 수학적 합집합 , 공통 데이터를 제거 하기위한 사전 작업으로 시스템에 부하를 주는 정렬 작업 발생 - UNION ALL 합집합은 같으나 공통 데이터를 그대로 보여주기 때문에 정렬작업은 일어나지 않음 시스템 부하 적음 ** UNION/UNION ALL 결과가 같다면, 응답 속도 향상이나 자원 효율화 측면에서 정렬작업이 발생하지 않는 UNION ALL 사용 권장 2. INTERSECTION - 수학의 교집합 두 집 합의 공통집합을 추출 3. DIFFERENCE - 수학적 차집합 첫번째 집합- 두번째 집합 공통부분 제외한 부분 - 대다수 EXCEPT/ ORACLE은 MINUS를 사용 4. PRODUCT - CROSS PRODUCT라고 ..

SQL 2021.12.18
728x90
반응형
LIST