반응형 전체 글43 SQLP 3과목 문제 풀이 ( 파티션 프루닝, 배치 프로그램 튜닝 ) 이 문제는 파티션이 성능에 어떻게 기여하는지 이해할 수 있는 문제이고, 배치 프로그램에서 커밋 주기를 어떻게 잡아야 하는지 알아야 풀 수 있는 문제입니다. 문제아래와 같이 [주문] 테이블을 월 단위로 파티셔닝했다. 다음 중 설명으로 가장 부적절한 것을 고르세요.[예문]CREATE TABLE 주문 ( 주문번호 NUMBER, 주문일자 DATE, 고객번호 NUMBER, 주문금액 NUMBER)PARTITION BY RANGE (주문일자) ( PARTITION P202601 VALUES LESS THAN (DATE '2026-02-01'), PARTITION P202602 VALUES LESS THAN (DATE '2026-03-01'), ...);1. WHERE 주문.. 2026. 8. 20. SQLP 3과목 문제 풀이 ( NL 조인, 해시 조인, Build Input ) 이 문제는 세 가지 조인 방식이 각각 언제 유리한지 이해할 수 있는 문제이고, 각 방식이 무엇을 전제로 하는지 알아야 풀 수 있는 문제입니다. 문제다음 중 조인 수행 방식에 대한 설명으로 가장 부적절한 것을 고르세요.1. NL 조인은 선행 테이블의 행마다 후행 테이블을 반복해서 탐색하므로, 선행 집합이 작고 후행 테이블의 조인 컬럼에 인덱스가 있을 때 유리하다.2. 해시 조인은 두 집합 중 작은 쪽으로 해시 테이블(Build Input)을 만들고 큰 쪽을 읽으며(Probe Input) 매칭한다.3. 해시 조인은 조인 조건이 등치(=) 조건일 때만 사용할 수 있다.4. 소트 머지 조인은 양쪽 집합을 조인 컬럼으로 정렬한 뒤 병합하므로, 조인 컬럼에 반드시 인덱스가 있어야 수행할 수 있다. 문.. 2026. 8. 19. SQLP 3과목 문제 풀이 ( 쿼리 변환, 서브쿼리 Unnesting ) 이 문제는 옵티마이저가 SQL을 어떻게 고쳐 쓰는지 이해할 수 있는 문제이고, 쿼리 변환이 지켜야 하는 원칙을 알아야 풀 수 있는 문제입니다. 문제아래 SQL에 대해 옵티마이저가 수행하는 쿼리 변환(Query Transformation)에 대한 설명으로 가장 부적절한 것을 고르세요.[예문]SELECT * FROM 고객 C WHERE EXISTS (SELECT 1 FROM 주문 O WHERE O.고객번호 = C.고객번호);1. 위 SQL의 서브쿼리를 조인 형태로 바꾸는 것을 서브쿼리 Unnesting이라고 한다.2. Unnesting이 되면 옵티마이저가 조인 순서와 조인 방식을 선택할 수 있게 되어 선택할 수 있는 실행계획의 폭이 넓어진다.3.. 2026. 8. 18. SQLP 3과목 문제 풀이 ( 블로킹, 데드락 ) 이 문제는 블로킹과 데드락이 어떻게 다른지 이해할 수 있는 문제이고, 데드락이 왜 저절로 풀리지 않는지 알아야 풀 수 있는 문제입니다. 문제아래는 두 세션이 [상품] 테이블을 갱신한 순서이다. 다음 중 이 상황에 대한 설명으로 가장 부적절한 것을 고르세요.[수행 순서]시각세션 A세션 BT1UPDATE 상품 SET 재고=재고-1WHERE 상품코드='P1' T2 UPDATE 상품 SET 재고=재고-1WHERE 상품코드='P2'T3UPDATE 상품 SET 재고=재고-1WHERE 상품코드='P2' ← 대기 T4 UPDATE 상품 SET 재고=재고-1WHERE 상품코드='P1' ← 대기1. T3에서 세션 A는 세션 B가 P2에 걸어 둔 배타적 락 때문에 대기한다.2. T4 시점에는 두 세션이 서로가 가진 자원.. 2026. 8. 17. SQLP 3과목 문제 풀이 ( 버퍼 캐시, 논리적 물리적 I/O ) 이 문제는 논리적 I/O와 물리적 I/O의 관계를 이해할 수 있는 문제이고, 버퍼 캐시 히트율이 왜 튜닝 지표로 부족한지 알아야 풀 수 있는 문제입니다. 문제아래는 어떤 SQL의 수행 통계이다. 다음 중 이 결과에 대한 해석으로 가장 부적절한 것을 고르세요.[SQL 수행 통계]항목값Buffer Gets (논리적 읽기)100,000Physical Reads (물리적 읽기)5,000Rows Processed (결과 행 수)1001. 이 SQL의 버퍼 캐시 히트율은 약 95%다.2. 결과 100건을 얻기 위해 블록을 10만 개나 읽었으므로 비효율이 크다.3. 버퍼 캐시 히트율이 95%로 충분히 높으므로 이 SQL은 튜닝할 필요가 없다.4. 논리적 읽기를 줄이는 것이 튜닝의 핵심이며, 인덱스 구성이나 조.. 2026. 8. 16. SQLP 3과목 문제 풀이 ( Array Processing, DB Call ) 이 문제는 DB Call 이 왜 성능에 큰 영향을 주는지 이해할 수 있는 문제이고, Array Processing 이 무엇을 줄이고 무엇을 늘리는지 알아야 풀 수 있는 문제입니다. 문제100만 건을 조회해 처리하는 프로그램에서 Arraysize(한 번에 가져오는 행 수)를 10에서 1000으로 늘렸다. 다음 중 그 결과에 대한 설명으로 가장 부적절한 것을 고르세요.1. 서버와 클라이언트 사이에 오가는 Fetch Call 횟수가 줄어 네트워크 부하가 감소한다.2. 한 번의 Call로 더 많은 행을 가져오므로 전체 수행 시간이 줄어드는 것이 일반적이다.3. 같은 블록을 반복해서 방문하는 횟수가 줄어 논리적 I/O(Buffer Gets)도 함께 줄어들 수 있다.4. Arraysize를 늘려도 클라이.. 2026. 8. 15. SQLP 3과목 문제 풀이 ( 하드 파싱, 바인드 변수 ) 이 문제는 하드 파싱이 왜 부담이 되는지 이해할 수 있는 문제이고, 바인드 변수가 무엇을 해결하고 무엇을 해결하지 못하는지 알아야 풀 수 있는 문제입니다. 문제아래 두 방식으로 작성된 SQL이 초당 수백 번씩 수행되고 있다. 다음 중 두 방식을 비교한 설명으로 가장 부적절한 것을 고르세요.[예문]-- (A) 상수를 직접 넣는 방식SELECT * FROM 주문 WHERE 주문번호 = 12345;SELECT * FROM 주문 WHERE 주문번호 = 12346;SELECT * FROM 주문 WHERE 주문번호 = 12347; ...-- (B) 바인드 변수를 쓰는 방식SELECT * FROM 주문 WHERE 주문번호 = :b1;1. (A)는 값이 바뀔 때마다 SQL 텍스트가 달라지므로 매번 하드 파싱이 .. 2026. 8. 14. SQLD 2과목 문제 풀이 ( 절차형 SQL, 트리거 ) 이 문제는 프로시저와 사용자 정의 함수, 트리거의 차이를 이해할 수 있는 문제이고, 트리거가 왜 트랜잭션을 스스로 끝낼 수 없는지 알아야 풀 수 있는 문제입니다. 문제다음 중 절차형 SQL에 대한 설명으로 가장 부적절한 것을 고르세요.1. 프로시저는 EXECUTE(또는 CALL) 명령으로 실행하고, 사용자 정의 함수는 SQL 문장 안에서 값처럼 사용할 수 있다.2. 사용자 정의 함수는 반드시 값을 반환해야 한다.3. 트리거는 INSERT, UPDATE, DELETE 같은 이벤트가 발생할 때 데이터베이스가 자동으로 실행한다.4. 트리거 안에서는 COMMIT과 ROLLBACK을 사용해 트리거가 수행한 작업만 따로 확정하거나 취소할 수 있다. 문제풀이정답은 4번이다.트리거는 자신을 유발한 트랜잭.. 2026. 8. 13. 이전 1 2 3 4 ··· 6 다음 반응형