본문 바로가기

cd database9

[SQLP] 실기시험 기출문제 복구(60%) 2014.09.20 ◎ 실기시험1번 * 쿼리 select a.고객번호, a.주문건수, a.총금액, a.할인금액, a.최근주문일시, b.고객명, b.고객주소 from ( select 고객번호, count(*) 주문건수, sum(금액) 총금액, sum(할인금액) 할인금액, max(주문일시) 최근주문일시 from 주문 where 주문일시 >= trunc(sysdate-3) group by 고객번호 ) a, 고객 b where a.고객번호 = b.고객번호 and b.고객등급 = 'Z001' * 위 쿼리의 sql trace 인라인 뷰의 where 주문일시 >= trunc(sysdate-3) 부분에서 access rowid cr=28xxx , pr=28xxx 2014. 9. 20.
대용량 DB 12강 (해쉬조인, 리커시브 SQL) 1. 해쉬 조인 (Hash Join) A. 해시연산에 의해서 바로 자기가 있어야 할 위치를 지정해서 맵핑 후 데이터를 뽑아낸다. CPU속도만 좋다면 속도가 아주 빠르다. B. 가능한 데이터가 적은 테이블이 드라이빙 됨. C. 데이터가 작은 테이블과 큰 테이블을 JOIN 할 때 가장 좋은 퍼포먼스를 낸다. 2. 순환 관계의 처리 (1:M) A. 리커시브 모델 i. 구조(순환 관계)가 변경되어도 식별자는 변하지 않아 과거 데이터 변경이 불필요하다. ii. 사용이 약간 불편하며 숙달된 기술력이 필요 iii. 약간의 기술력이 필요함 (잘못 사용 시 수행속도가 저하된다.) 3. 오라클의 리커시브 SQL 지원 A. 구문 i. From 절에 하나의 테이블만 나옴. (자기 스스로 JOIN 되기 때문..) ii. WHE.. 2014. 5. 29.
대용량 DB 11강 (Join) (이번 동영상은 다시 보는 게 도움될 듯!) 1. Index range scan - 사각형 안의 쿼리의 실행계획을 생각해보자. Select custno, chuldate, custname From customer Y, chulgot X WHERE RTRIM(X.CUSTNO) = RTRIM(Y.CUSTNO) AND X.CHULDATE = ‘941130’ AND Y.NATION = ‘KOR' [답] Merge join(sort) Table Access by rowed chulgot Index range scan ch_chuldate Table access by rowed customer Index range scan cu_nation 2. 액세스 경로의 결정 - 아래 세가지 조건을 고려. n 상수값을 받을 .. 2014. 5. 23.
대용량 DB 10강 (인덱스 , 조인) 1. 추가된 인덱스가 미치는 영향 l SELECT * FROM TAB1 WHERE A = ‘10’ AND B = ‘941005’ AND C = ‘123’ - IDX1 : AB , IDX2 : C 가 있다면, 결합인덱스인 IDX1를 탄다. 여기서, IDX1에 ABD로 변경하면 다른 부분에 영향을 미침 l 분포도 차이가 심한 경우 - 예를 들어, corp_id의 값이 삼성 SDS로 90%로 이루어져 있다면, 삼성 SDS는 값을 null로 가져가라. 그리고 아래의 쿼리로 변경. SELECT nvl(corp_id , ‘100’) corp_id FROM XX WHERE :V1 = ‘100’ AND CORP_ID is null UNION ALL SELECT * FROM XX WHERE :V1 ‘100’ AND CO.. 2014. 5. 16.