Week1_박우창

조회 수 4219 추천 수 0 2013.09.06 23:30:06
balto *.252.219.183
제목 작성자 날짜
Week1_박우창 (current) balto 2013.09.06 23:30:06
복원
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[1장] 아키텍쳐 기반 튜닝 원리</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">1. 다음은 실행계획을 공유하지 못하는 같은 의미의 SQL 문장이다. 효율에 가장 영향을 미치는 경우는 어떤 것인가? (p490)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM Customer; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT /* 고객 데이터 */ * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM HR.CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'tommy'; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'karajan'; </span></p>
<p class="바탕글">&nbsp; <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">2. Dynamic SQL에 대한 설명 중 틀린 것은? (p495)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) Static SQL과 차이점은 SLQ 문이 실행시 동적으로 바뀐다는 점이다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) Precompile시 syntax, semantic 체크가 불가능하다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) Toad, Orange 같은 툴에서 적성하는 SQL은 Dynamic SQL이다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) String 형 변수에에 담지 않고 코드사이에 직접 기술한 SQL을 말한다. </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">3. 다음 Oracle과 Sqlserver의&nbsp;파일 구조에 관한 용어를 서로 대응시켜본 것이다 가장 거리가 먼 것은?(p476)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp;&nbsp; (Oracle-SQLServer&nbsp;순서)&nbsp;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 블록-페이지</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 테이블 스페이스-파일 그룹</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) Redo 로그-Transaction 로그</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) Archived Redo 로그 - Online Redo 로그&nbsp;</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[2장] Lock와 트랜잭션 동시성 제어</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">4. SQL Server LOCK의 종류가 아닌 것은? (p536)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 공유 LOCK</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 배타적 LOCK</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 의도 LOCK</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 테이블 LOCK</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">5. Dirty READ 현상이 발생하는 격리성 수준을 골라라 (p543)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) READ UNCOMMITTED</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) READ COMMITTED</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) REPEATABLE READ</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) SERIALIZABLE READ</span></p>
<p class="바탕글">&nbsp; </p>
<p class="바탕글">6. 동시성제어에 관한 설명중 틀린 것은?(p547)</p>
<p class="바탕글">(1) 동시성을 높이려면 Lock을 최솨 해야한다.</p>
<p class="바탕글">(2)&nbsp;비관적동시성제어와 낙관적동시성제어가 있다.</p>
<p class="바탕글">(3) 낙관적동시성제어는 배타락을 사용하지 않는다.</p>
<p class="바탕글">(4) 비관적동시성제어는 공유락을 사용한다. &nbsp;&nbsp;</p>
<p class="바탕글">&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">[3장]</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">7. 다음 중 쿼리변환에 해당되지 않는 것은? (p571)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 서브쿼리 NESTING</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 뷰머징</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 조건절 푸싱</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 불필요한 조인 제거</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">8. 다음은 SQL 문에 대하여 옵티마이저가 쿼리변환을 하여 수행한 실행계획이다. 해당되는 쿼리변환 이름은? (p574)</span></p>
<p class="바탕글"></p>
<table style="BORDER-BOTTOM: #000000 0.28pt solid; BORDER-LEFT: #000000 0.28pt solid; BORDER-COLLAPSE: collapse; BORDER-TOP: #000000 0.28pt solid; BORDER-RIGHT: #000000 0.28pt solid">
<tbody>
<tr>
<td style="BORDER-BOTTOM: #000000 0.28pt solid; BORDER-LEFT: #000000 0.28pt solid; PADDING-BOTTOM: 1.41pt; PADDING-LEFT: 5.1pt; WIDTH: 419.54pt; PADDING-RIGHT: 5.1pt; HEIGHT: 2.82pt; BORDER-TOP: #000000 0.28pt solid; BORDER-RIGHT: #000000 0.28pt solid; PADDING-TOP: 1.41pt" valign="center">
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">select * from emp where deptno in (select deptno from dept) </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------ </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Id | Operation </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Name </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Rows </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Bytes</span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Cost (%CPU)| </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------ </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 0 | SELECT STATEMENT </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 10 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 350 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 2 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 1 | TABLE ACCESS BY INDEX ROWID| EMP </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 3 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 99 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 1 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 2 | NESTED LOOPS </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 10 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 350 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 2 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 3 | INDEX FULL SCAN </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| DEPT_PK | 4 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 8 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 1 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">|* 4 | INDEX RANGE SCAN </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| EMP_DEPTNO_IDX | 3 | </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 0 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------ </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">Predicate Information (identified by operation id): </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------</span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">4 - access("DEPTNO"="DEPTNO") </span></p></td></tr></tbody></table>
<p>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 서브쿼리 UNNESTING</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 뷰머징</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 조건절 푸싱</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 불필요한 조인 제거</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">9. Oracle 에서 힌트가 무시되는 경우를 설명한 것이다. 해당되지 않는 것은?(p568)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 참조하는 테이블이 없을 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 참조하는 인덱스 이름이 맞지 않을때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 힌트보다 더 좋은 실행계획이 있을 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 다른 주석과 문장이 섞여있을 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[4장] 인덱스와 조인</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">10. 인덱스를 재 생성해야하는 경우가 아닌 것은? (p612)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 인덱스 분할에 의한 경합이 현저히 높을 때 자주 사용되는 인덱스 스캔 효율을 높이고자 할 때. </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) NL Join에서 반복 액세스되는 인덱스 높이(height)가 증가했을 때 </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 대량의 delete 작업을 수행한 이후 다시 레코드가 입력되기까지 오랜 기간이 소요될 때 (4) 총 레코드 수가 일정한데도 인덱스가 계속 줄어들때</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">11. 클러스터형 인덱스가 유용한 경우가 아닌 것은? (p618</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 넓은 범위를 주로 검색하는 테이블</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 데이터 입력과 조회 패턴이 서로 같은 테이블</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 칼럼 수가 적고 로우 수가 많은 테이블 </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 크기가 작고 NL Join으로 반복 룩업하는 테이블</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">12. 질의문이 인덱스를 사용할 경우&nbsp;인덱스의 맆노드 개수에 영향을 받지 않은 인덱스 스캔 방법은?(p600)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) Index Unique Scan</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) Index Skip Scan</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) Index Fast Full Scan</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) Index Range Scan</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[5장] 고급 SQL 튜닝</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">13. 다음은 정렬이 필요한 SQL 문이다. 그렇지만 인덱스를 키 컬럼 순으로 생성하면 정렬을 하지 않고 인덱스를 이용하여 질의 결과를 계산할 수 있다. 다음 질의와 인덱스 생성을 보고 여기에 해당되는 것과 가장 거리가 먼 것을 찾아라. (p700)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) select * from customer where X='A' order by Y</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X+Y)로 인덱스를 만든다</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) select distinct X from emp order by X</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X)로 인덱스를 만든다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) select X, count(*) from customer group by X</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X)로 인덱스를 만든다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) select max(X+Y) from 주문 where X=10;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X, Y)로 인덱스를 만든다.</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">14. 다음 중 소트를 발생시키지 않은 질의는? (p689)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) select count(*), max(sal) from emp;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) select * from emp order by ename;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) select deptno, count(*) from emp group by deptno order by deptno;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) select empno from emp union select empno from emp where empno=10;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">15. Hash Join을 사용하면 좋은 상황을 설명한 것이다.&nbsp;틀린 것은?(p651)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 조인컬럼에 적당한 인덱스가 없어서 NL 조인이 비효율적일 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 조인컬럼에 인덱스가 있지만 NL조인 드라이빙 집합에서 인너조인으로 조인액세스량이 많아 Random 액세스 부하기 심할 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) Sort Merge 조인하기에 두 테이블이 너무 커 소트부하가 심할 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 수행빈도가 낮고 쿼리수행시간이&nbsp;적게걸리는 테이블을 조인할 떄 </span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[주관식]</span></p>
<p class="바탕글"><span style="FONT-FAMILY: 바탕">1. 다음 SQL 문은 SORT 연산을 발생시킨다. 질의를 바꾸어 SORT 연산이 발생하지 않도록 해보아라. (p696)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(질의)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">select distinct deptno</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">from emp;</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(변경된 질의)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">select deptno</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">from emp a</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">where exists ( ? );</span></p>
<p class="바탕글">&nbsp; </p>
<p class="바탕글">2. 다음 빈칸(*)에 들어갈&nbsp;문장을 적어라 <!--StartFragment--></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SQL&gt; create index emp_deptno_idx on emp(deptno); </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SQL&gt; select * from emp where deptno = 20; </span></p>
<p class="바탕글">&nbsp;</p>
<p class="바탕글">Oracle<o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">Execution Plan -----------</span><span style="mso-fareast-font-family: 바탕" lang="EN-US">------------------------------------------- </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">0 SELECT STATEMENT Optimizer=ALL_ROWS </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">1 0 TABLE ACCESS (BY INDEX ROWID) OF 'EMP' (TABLE) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">2 1&nbsp;(*) OF 'EMP_DEPTNO_IDX' (INDEX) </span></p>
<p class="바탕글">&nbsp; </p>
<p class="바탕글">SQLServer&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">StmtText </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">------------------------------------------------------------- |--Nested Loops(Inner Join, OUTER REFERENCES:([Bmk1000]))</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">|-- (*) (OBJECT:([..].[dbo].[emp].[emp_deptno_idx]), SEEK:([deptno]=20) ORDERED FORWARD)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">|--RID Lookup(OBJECT:([..].[dbo].[emp]), SEEK:([Bmk1000]=[Bmk1000]) LOOKUP ORDERED FORWARD) </span></p><o:p></o:p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
balto 2012.08.07 13:37:51
복원
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[1장] 아키텍쳐 기반 튜닝 원리</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">1. 다음은 실행계획을 공유하지 못하는 같은 의미의 SQL 문장이다. 효율에 가장 영향을 미치는 경우는 어떤 것인가? (p490)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM Customer; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT /* 고객 데이터 */ * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM HR.CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'tommy'; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp; SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'karajan'; </span></p>
<p class="바탕글">&nbsp; <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">2. Dynamic SQL에 대한 설명 중 틀린 것은? (p495)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) Static SQL과 차이점은 SLQ 문이 실행시 동적으로 바뀐다는 점이다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) Precompile시 syntax, semantic 체크가 불가능하다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) Toad, Orange 같은 툴에서 적성하는 SQL은 Dynamic SQL이다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) String 형 변수에에 담지 않고 코드사이에 직접 기술한 SQL을 말한다. </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">3. 다음 Oracle과 Sqlserver의&nbsp;파일 구조에 관한 용어를 서로 대응시켜본 것이다 가장 거리가 먼 것은?(p476)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">&nbsp;&nbsp; (Oracle-SQLServer&nbsp;순서)&nbsp;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 블록-페이지</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 테이블 스페이스-파일 그룹</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) Redo 로그-Transaction 로그</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) Archived Redo 로그 - Online Redo 로그&nbsp;</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[2장] Lock와 트랜잭션 동시성 제어</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">4. SQL Server LOCK의 종류가 아닌 것은? (p536)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 공유 LOCK</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 배타적 LOCK</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 의도 LOCK</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 테이블 LOCK</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">5. Dirty READ 현상이 발생하는 격리성 수준을 골라라 (p543)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) READ UNCOMMITTED</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) READ COMMITTED</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) REPEATABLE READ</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) SERIALIZABLE READ</span></p>
<p class="바탕글">&nbsp; </p>
<p class="바탕글">6. 동시성제어에 관한 설명중 틀린 것은?(p547)</p>
<p class="바탕글">(1) 동시성을 높이려면 Lock을 최솨 해야한다.</p>
<p class="바탕글">(2)&nbsp;비관적동시성제어와 낙관적동시성제어가 있다.</p>
<p class="바탕글">(3) 낙관적동시성제어는 배타락을 사용하지 않는다.</p>
<p class="바탕글">(4) 비관적동시성제어는 공유락을 사용한다. &nbsp;&nbsp;</p>
<p class="바탕글">&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">[3장]</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">7. 다음 중 쿼리변환에 해당되지 않는 것은? (p571)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 서브쿼리 NESTING</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 뷰머징</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 조건절 푸싱</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 불필요한 조인 제거</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">8. 다음은 SQL 문에 대하여 옵티마이저가 쿼리변환을 하여 수행한 실행계획이다. 해당되는 쿼리변환 이름은? (p574)</span></p>
<p class="바탕글"></p>
<table style="BORDER-BOTTOM: #000000 0.28pt solid; BORDER-LEFT: #000000 0.28pt solid; BORDER-COLLAPSE: collapse; BORDER-TOP: #000000 0.28pt solid; BORDER-RIGHT: #000000 0.28pt solid">
<tbody>
<tr>
<td style="BORDER-BOTTOM: #000000 0.28pt solid; BORDER-LEFT: #000000 0.28pt solid; PADDING-BOTTOM: 1.41pt; PADDING-LEFT: 5.1pt; WIDTH: 419.54pt; PADDING-RIGHT: 5.1pt; HEIGHT: 2.82pt; BORDER-TOP: #000000 0.28pt solid; BORDER-RIGHT: #000000 0.28pt solid; PADDING-TOP: 1.41pt" valign="center">
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">select * from emp where deptno in (select deptno from dept) </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------ </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Id | Operation </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Name </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Rows </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Bytes</span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Cost (%CPU)| </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------ </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 0 | SELECT STATEMENT </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 10 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 350 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 2 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 1 | TABLE ACCESS BY INDEX ROWID| EMP </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 3 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 99 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 1 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 2 | NESTED LOOPS </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 10 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 350 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 2 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 3 | INDEX FULL SCAN </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| DEPT_PK | 4 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 8 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 1 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">|* 4 | INDEX RANGE SCAN </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| EMP_DEPTNO_IDX | 3 | </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 0 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------ </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">Predicate Information (identified by operation id): </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------</span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">4 - access("DEPTNO"="DEPTNO") </span></p></td></tr></tbody></table>
<p>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 서브쿼리 UNNESTING</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 뷰머징</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 조건절 푸싱</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 불필요한 조인 제거</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">9. Oracle 에서 힌트가 무시되는 경우를 설명한 것이다. 해당되지 않는 것은?(p568)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 참조하는 테이블이 없을 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 참조하는 인덱스 이름이 맞지 않을때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 힌트보다 더 좋은 실행계획이 있을 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 다른 주석과 문장이 섞여있을 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[4장] 인덱스와 조인</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">10. 인덱스를 재 생성해야하는 경우가 아닌 것은? (p612)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 인덱스 분할에 의한 경합이 현저히 높을 때 자주 사용되는 인덱스 스캔 효율을 높이고자 할 때. </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) NL Join에서 반복 액세스되는 인덱스 높이(height)가 증가했을 때 </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 대량의 delete 작업을 수행한 이후 다시 레코드가 입력되기까지 오랜 기간이 소요될 때 (4) 총 레코드 수가 일정한데도 인덱스가 계속 줄어들때</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">11. 클러스터형 인덱스가 유용한 경우가 아닌 것은? (p618</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 넓은 범위를 주로 검색하는 테이블</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 데이터 입력과 조회 패턴이 서로 같은 테이블</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 칼럼 수가 적고 로우 수가 많은 테이블 </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 크기가 작고 NL Join으로 반복 룩업하는 테이블</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">12. 질의문이 인덱스를 사용할 경우&nbsp;인덱스의 맆노드 개수에 영향을 받지 않은 인덱스 스캔 방법은?(p600)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) Index Unique Scan</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) Index Skip Scan</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) Index Fast Full Scan</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) Index Range Scan</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[5장] 고급 SQL 튜닝</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">13. 다음은 정렬이 필요한 SQL 문이다. 그렇지만 인덱스를 키 컬럼 순으로 생성하면 정렬을 하지 않고 인덱스를 이용하여 질의 결과를 계산할 수 있다. 다음 질의와 인덱스 생성을 보고 여기에 해당되는 것과 가장 거리가 먼 것을 찾아라. (p700)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) select * from customer where X='A' order by Y</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X+Y)로 인덱스를 만든다</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) select distinct X from emp order by X</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X)로 인덱스를 만든다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) select X, count(*) from customer group by X</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X)로 인덱스를 만든다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) select max(X+Y) from 주문 where X=10;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X, Y)로 인덱스를 만든다.</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">14. 다음 중 소트를 발생시키지 않은 질의는? (p689)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) select count(*), max(sal) from emp;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) select * from emp order by ename;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) select deptno, count(*) from emp group by deptno order by deptno;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) select empno from emp union select empno from emp where empno=10;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US"></span>&nbsp;</p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">15. Hash Join을 사용하면 좋은 상황을 설명한 것이다.&nbsp;틀린 것은?(p651)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 조인컬럼에 적당한 인덱스가 없어서 NL 조인이 비효율적일 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 조인컬럼에 인덱스가 있지만 NL조인 드라이빙 집합에서 인너조인으로 조인액세스량이 많아 Random 액세스 부하기 심할 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) Sort Merge 조인하기에 두 테이블이 너무 커 소트부하가 심할 때</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 수행빈도가 낮고 쿼리수행시간이&nbsp;적게걸리는 테이블을 조인할 떄 </span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[주관식]</span></p>
<p class="바탕글"><span style="FONT-FAMILY: 바탕">다음 SQL 문은 SORT 연산을 발생시킨다. 질의를 바꾸어 SORT 연산이 발생하지 않도록 해보아라. (p696)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(질의)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">select distinct deptno</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">from emp;</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(변경된 질의)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">select deptno</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">from emp a</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">where exists ( ? );</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
balto 2012.07.23 20:44:13
복원
<!--StartFragment-->
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[1장] 아키텍쳐 기반 튜닝 원리</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">1. 다음은 실행계획을 공유하지 못하는 같은 의미의 SQL 문장이다. 효율에 가장 영향을 미치는 경우는 어떤 것인가? (p490)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SELECT * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SELECT * FROM Customer; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SELECT * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SELECT /* 고객 데이터 */ * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SELECT * FROM CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SELECT * FROM HR.CUSTOMER; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'tommy'; </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'karajan'; </span></p>
<p class="바탕글">&nbsp; <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">2. Dynamic SQL에 대한 설명 중 틀린 것은? (p495)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) Static SQL과 차이점은 SLQ 문이 실행시 동적으로 바뀐다는 점이다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) Precompile시 syntax, semantic 체크가 불가능하다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) Toad, Orange 같은 툴에서 적성하는 SQL은 Dynamic SQL이다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) String 형 변수에에 담지 않고 코드사이에 직접 기술한 SQL을 말한다. </span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[2장] Lock와 트랜잭션 동시성 제어</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">3. SQL Server LOCK의 종류가 아닌 것은? (p536)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 공유 LOCK</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 배타적 LOCK</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 의도 LOCK</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 테이블 LOCK</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">4. Dirty READ 현상이 발생하는 격리성 수준을 골라라 (p543)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) READ UNCOMMITTED</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) READ COMMITTED</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) REPEATABLE READ</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) SERIALIZABLE READ</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">[3장]</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">5. 다음 중 쿼리변환에 해당되지 않는 것은? (p571)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 서브쿼리 NESTING</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 뷰머징</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 조건절 푸싱</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 불필요한 조인 제거</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">6. 다음은 SQL 문에 대하여 옵티마이저가 쿼리변환을 하여 수행한 실행계획이다. 해강되는 쿼리변환 이름은? (p574)</span></p>
<p class="바탕글"></p>
<table style="BORDER-BOTTOM: #000000 0.28pt solid; BORDER-LEFT: #000000 0.28pt solid; BORDER-COLLAPSE: collapse; BORDER-TOP: #000000 0.28pt solid; BORDER-RIGHT: #000000 0.28pt solid">
<tbody>
<tr>
<td style="BORDER-BOTTOM: #000000 0.28pt solid; BORDER-LEFT: #000000 0.28pt solid; PADDING-BOTTOM: 1.41pt; PADDING-LEFT: 5.1pt; WIDTH: 419.54pt; PADDING-RIGHT: 5.1pt; HEIGHT: 2.82pt; BORDER-TOP: #000000 0.28pt solid; BORDER-RIGHT: #000000 0.28pt solid; PADDING-TOP: 1.41pt" valign="center">
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">select * from emp where deptno in (select deptno from dept) </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------ </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Id | Operation </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Name </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Rows </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Bytes</span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| Cost (%CPU)| </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------ </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 0 | SELECT STATEMENT </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 10 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 350 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 2 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 1 | TABLE ACCESS BY INDEX ROWID| EMP </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 3 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 99 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 1 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 2 | NESTED LOOPS </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 10 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 350 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 2 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 3 | INDEX FULL SCAN </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| DEPT_PK | 4 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 8 </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 1 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">|* 4 | INDEX RANGE SCAN </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| EMP_DEPTNO_IDX | 3 | </span><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">| 0 (0) | </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------ </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">Predicate Information (identified by operation id): </span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">------------------------------------------------------------------</span></p>
<p class="바탕글"><span style="FONT-FAMILY: 명조; mso-fareast-font-family: 명조; mso-hansi-font-family: 명조" lang="EN-US">4 - access("DEPTNO"="DEPTNO") </span></p></td></tr></tbody></table>
<p></p>
<p class="바탕글">&nbsp;&nbsp;&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 서브쿼리 UNNESTING</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 뷰머징</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 조건절 푸싱</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 불필요한 조인 제거</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[4장] 인덱스와 조인</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">7. 인덱스를 재 생성해야하는 경우가 아닌 것은? (p612)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 인덱스 분할에 의한 경합이 현저히 높을 때 자주 사용되는 인덱스 스캔 효율을 높이고자 할 때. </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) NL Join에서 반복 액세스되는 인덱스 높이(height)가 증가했을 때 </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 대량의 delete 작업을 수행한 이후 다시 레코드가 입력되기까지 오랜 기간이 소요될 때 (4) 총 레코드 수가 일정한데도 인덱스가 계속 줄어들때</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">8. 클러스터형 인덱스가 유용한 경우가 아닌 것은? (p618</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) 넓은 범위를 주로 검색하는 테이블</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) 데이터 입력과 조회 패턴이 서로 같은 테이블</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) 칼럼 수가 적고 로우 수가 많은 테이블 </span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) 크기가 작고 NL Join으로 반복 룩업하는 테이블</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[5장] 고급 SQL 튜닝</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">9. 다음은 정렬이 필요한 SQL 문이다. 그렇지만 인덱스를 키 컬럼 순으로 생성하면 정렬을 하지 않고 인덱스를 이용하여 질의 결과를 계산할 수 있다. 다음 질의와 인덱스 생성을 보고 여기에 해당되는 것과 가장 거리가 먼 것을 찾아라. (p700)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) select * from customer where X='A' order by Y</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X+Y)로 인덱스를 만든다</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) select distinct X from emp order by X</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X)로 인덱스를 만든다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) select X, count(*) from customer group by X</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X)로 인덱스를 만든다.</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) select max(X+Y) from 주문 where X=10;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">- (X, Y)로 인덱스를 만든다.</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">10. 다음 중 소트를 발생시키지 않은 질의는? (p689)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(1) select count(*), max(sal) from emp;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(2) select * from emp order by ename;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(3) select deptno, count(*) from emp group by deptno order by deptno;</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(4) select empno from emp union select empno from emp where empno=10;</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="FONT-WEIGHT: bold; mso-fareast-font-family: 바탕" lang="EN-US">[주관식]</span></p>
<p class="바탕글"><span style="FONT-FAMILY: 바탕">다음 SQL 문은 SORT 연산을 발생시킨다. 질의를 바꾸어 SORT 연산이 발생하지 않도록 해보아라. (p696)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(질의)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">select distinct deptno</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">from emp;</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">(변경된 질의)</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">select deptno</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">from emp a</span></p>
<p class="바탕글"><span style="mso-fareast-font-family: 바탕" lang="EN-US">where exists ( ? );</span></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
<p class="바탕글">&nbsp; <o:p></o:p></p>
balto 2012.07.17 01:54:49