반응형

SQL 17

SQL 처리과정과 I/O_데이터 저장 구조 및 I/O 메커니즘

데이터 저장 구조 및 I/O 메커니즘 논리적 I/O vs. 물리적 I/O DB 버퍼 캐시 데이터를 캐싱하는 'DB Buffer Cache'는 SGA의 구성요소 중 하나다. Library Cache가 SQL과 실행계획, DB 저장형 함수/프로시저 등을 캐싱하는 '코드 캐시'라고 한다면, DB Buffer Cache는 '데이터 캐시'라고 할 수 있다. 디스크에서 읽은 데이터 블록을 캐싱해 둠으로써 같은 불 록에 대한 반복적인 Disk I/O Call을 줄이는 데 목적이 있다. 서버 프로세스는 데이터 블록을 읽을 때 항상 버퍼캐시부터 탐색한다. 캐시해서 블록을 찾으면 Disk I/O Call을 하지 않고, 못 찾으면 I/O Call을 한다. 버퍼캐시는 공유메모리 영역이므로 같은 블록을 읽는 다른 프로세스도 득..

SQL/SQL Processing 2021.07.03

SQL Processing

출처 : https://docs.oracle.com/database/121/TGSQL/tgsql_sqlproc.htm#TGSQL183 출처 : https://o2sunn.tistory.com/4 SQL Processing About SQL Processing SQL 처리는 Parsing, Optimization, Row Source Generation, Execution 단계로 되어있다. 명령문에 따 라 데이터베이스는 이 단계들 중 몇몇 단계를 생략할 수 있다. 다음 그림은 SQL처리하는 일반적인 단계 를 보여준다. SQL 문장이 수행되는 과정 1. User Process는 자신이 가져온 SQL 문장을 Server Process에 전달해주고 결과가 나올 때까지 기 다린다. 2. SQL문장을 받은 Serv..

SQL/SQL Processing 2021.07.03

[SQL]카테시안조인(CARTESIAN JOIN)

CARTESIAN-JOIN - CARTESIAN-JOIN 이해하기 CARTESIAN-JOIN은 조인 조건이 없는 조인을 뜻한다. 예를 들어, FROM절에 A와 B테이블이 있다고 가정한다. A에는 2건, B에는 4건 있을 때 조인 조건 없이 카테시안 조인이 이루어지면서 A * B가 되어 총 8(2*4) 건이 된다. 예제) 고객등급(M_CUS.CUS_GD)과 아이템유형(M_ITM.ITM_TP)의 조합 가능한 모든 데이터 SELECT T1.CUS_GD, T2.ITM_TP FROM ( SELECT DISTINCT A.CUS_GD FROM M_CUS A ) T1 ,( SELECT DISTINCT A.ITM_TP FROM M_ITM A ) T2 ORDER BY T1.CUS_GD, T2.ITM_TP; CUS_GD의 ..

SQL 2021.02.07

[SQL] 아우터조인(OUTER-JOIN)

OUTER-JOIN - OUTER-JOIN 이해하기 아우터-조인(OUTER-JOIN)은 조인 조건에 만족하지 않은 데이터도 결과에 나오도록 하는 조인이다. 아우터-조인에는 '기준 데이터 집합'과 '참조 데이터 집합'이 있다. 기준 데이터 집합 : 아우터-조인의 기준이 되는 집합('아우터-집합' 이라고도 한다.) 참조 데이터 집합 : 아우터-조인의 참조가 되는 집합 '기준 데이터 집합'은 조인 조건을 만족하지 않아도 모두 결과에 포함된다. 단, 필터 조건은 만족해야 한다. 아우터-조인을 사용하려면, 조인 조건 컬럼 한쪽에 '(+)' 표시를 추가하면 된다. 조인 조건에 '(+)'가 있으면 아우터-조인, 없으면 이너-조인이다. '기준 데이터 집합'과 '참조 데이터 집합'은 '(+)' 표시로 구분한다. 조인 조..

SQL 2021.01.29

[SQL]Top-N 쿼리_ROWNUM

Top-N 쿼리 Top-N 쿼리는 말 그대로 상위(Top) N개의 행을 조회하는 쿼리이다. 기본 문법 오라클 데이터베이스는 ROWNUM 방식, 분석함수 방식, ROW LIMITNING 절 세 가지 방식의 Top-N쿼리를 사용할 수 있다. 15.1.1 ROWNUM 방식 ROWNUM 방식은 오라클 데이터베이스 전통적인 Top-N쿼리 방식이다. ORDER BY 절로 행을 정렬하고, 정렬된 행을 ROWNUM 슈도 칼럼으로 제한한다. ex 1 ) SELECT empno, sal, ROWNUM AS rn FROM emp; ROWNUM 슈도 칼럼은

SQL/Top-N 쿼리 2020.12.02

[SQL]분석함수(analytic function)_KEEP 키워드

KEEP 키워드 분석 함수도 KEEP 키워드를 사용할 수 있다. KEEP 키워드를 사용하면 ANALYTIC 절에 QUERY PARTITION 절만 사용할 수 있다. KEEP 키워드를 사용해 그룹 내 최대, 최소값을 구할 수 있다. analytic_function([ arguments ]) KEEP(DENSE_RANK { FIRST | LAST } ORDER BY expr) [OVER([ query_partition_clause ])] ex 1 ) job 파티션별 sal 최소인 행을 대상으로 comm의 최대 값을 출력해라. SELECT ename, job, sal, comm ,① MAX(comm) KEEP(DENSE_RANK FIRST ORDER BY sal) OVER(PARTITION BY job) AS..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_LAG, LEAD, LISTAGG

* LAG함수, LEAD함수, LISTAGG함수를 살펴보자 | LAG 함수 LAG함수는 현재 행에서 offset 이전 행의 value_expr을 반환한다. offset은 행 기준이며 기본 값은 1이다. default에 이전 행이 없을 경우 반환할 값을 지정할 수 있다. default의 기본값은 널이다. LAG(value_expr[, offset [, default]])[IGNORE NULLS] OVER([query_partition_clause] order_by_clause) ex 1 ) SELECT hiredate, sal , LAG(sal) OVER(ORDER BY hiredate) AS c1 , LAG(sal,3) OVER(ORDER BY hiredate) AS c2 FROM emp WHERE de..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_순차함수(FIRST_VALUE, LAST_VALUE, NTH_VALUE)

순차 함수 * 순차함수는 순차에 해당하는 값을 가져오는 함수다. | FIRST_VALUE 함수 FIRST_VALUE 함수는 윈도우 첫 행의 expr을 반환한다. IGNORE NULLS 키워드를 기술하면 널이 무시된다. FIRST_VALUE(expr)[IGNORE NULLS] OVER(analytic_clause) ex 1 ) EMP 테이블에서 부서번호가 30이고, 직업별로 입사를 가장 먼저한 사람의 급여를 구해라. SELECT job,hiredate, sal , FIRST_VALUE(sal) OVER(PARTITION BY job ORDER BY hiredate) AS c1 FROM emp WHERE deptno = 30 ORDER BY 1, 2; - 위 결과값을 보면 부서번호가 30인 CLERK, MA..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_분포함수(PERCENTILE_CONT, PERCENTILE_DISC, MEDIAN)

분포 함수 * 분포함수는 분포 모형에 따른 분포 값을 반환한다. | PERCENTILE_CONT 함수 PERCENTILE_CONT 함수는 연속 분포 모델에서 expr에 지정한 백분위 값에 해당하는 값을 반환한다. expr은 0 ~ 1의 범위를 지정할 수 있다. PERCENTILE_CONT(expr) WITHIN GROUP(ORDER BY expr [DESC | ASC])[OVER(query_partition_clause)] ex ) SELECT job, ename, sal , PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY sal) OVER(PARTITION BY job) AS c1 FROM emp WHERE deptno = 30 ORDER BY 1, 3, empno; | ..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_순위함수(NTILE, CUME_DIST, PERCENT_RANK, RATIO_TO_REPORT)

순위 함수 | NTILE 함수 NTILE 함수는 order_by_clause에 따라 행을 정렬하고, expr의 개수만큼 버킷을 생성한 후, 행에 해당하는 버킷 번호를 할당한다. NTILE(expr) OVER([query_partition_clause] order_by_clause) ex 1 ) SELECT sal , NTILE(1) OVER(ORDER BY sal) AS c1, NTILE(2) OVER(ORDER BY sal) AS c2 , NTILE(3) OVER(ORDER BY sal) AS c3, NTILE(4) OVER(ORDER BY sal) AS c4 , NTILE(5) OVER(ORDER BY sal) AS c5, NTILE(6) OVER(ORDER BY sal) AS c6 , NTILE(7..

SQL/분석함수 2020.09.19
728x90
반응형