* 연습문제

h4. 문제 1. 백그라운드 프로세스에 대한 설명으로 맞지 않는 것은?
1) Oracle PMON 프로세스와 SQL Server OPS 쓰레드는 장애가 발생한 시스템을 재기동 할 때 인스턴스 복구를 한다.
2) Oracle DBWn 프로세스와 SQL Server Lazywriter 쓰레드는 Dirty 버펄르 데이터 파일에 기록하는 역할을 맡는다.
3) Check Point는 이전에 Check point가 일어났떤 마지막 시점 이후의 데이터베이스 변경 사항을 데이터 파일에 기록하도록 트리거링 한다.
4) Log Writer는 로그 버퍼를 로그 파일에 기록하는 역할을 맡는다.
h4. 문제 2. SQL 파싱과 관련한 다음 설명 중 맞는 것은?
1) SQL을 수행할 때마다 옵티마이저는 실행계획을 새로 생성한다.
2) 실행계획을 생성하는 데는 아주 짧은 시간만 소요되므로 리터럴 형태로 쿼리를 작성해도 시스템에 주는 영향은 미미하다.
3) 바인드 변수를 사용했다면 비록 Dynamic SQL이더라도 라이브러리 캐시 효울에 나쁘지 않다.
4) OLTP, DW를 막론하고 라이브러리 캐시 효율을 위해선 바인드 변수를 사용해야 한다.
h4. 문제 3. 부분범위처리에 대한 설명으로 틀린 것은?
1) 부분범위처리는 Oracle만의 독특한 매커니즘이다.
2) 부분범위처리는 대량의 결과 집합 중 일부만 Fetch하고 멈추는 업무화면에서 유용하다.
3) 결과집합 전체를 Fetch 해야 한다면 부분범위처리가 성능 개선에 전혀 도움이 되지 않는다.
4) ArraySize를 작게 설정하면 부분범위처리에 의한 응답속도가 빨라진다.
h4. 문제 4. 사용자 정의 함수에 대한 설명 중 틀린 것은?
1) 사용자 정의 함수는 항상 성능 문제를 야기하므로 사용하지 않는 것이 좋다.
2) 쿼리를 포함하는 사용자 정의 함수를 반복 호출하면 Recursive Call 때문에 성능이 크게 나빠진다.
3) 사용자 정의 함수를 사용할 때 성능이 나빠지는 것은 Context Switching 때문이기도 하다.
4) 사용자 정의 함수를 사용하면 문장수준 읽기 일관성이 보장되지 않을 수 있다. 즉, 쿼리 결과 집합을 Fetch하면서 함수를 반복 호출하다 보면 중간부터 다른 값이 반환 될 수도 있다.
h4. 문제 5. 아래는 I/O 효율화 튜닝 방안을 설명하고 있다. 잘못된 것은?
1) 필요한 최소 블록만 읽도록 쿼리를 작성한다.
2) 전략적인 인덱스 구성은 물론 DBMS가 제공하는 다양한 기능을 활용한다.
3) 옵티마이저 행동에 영향을 미치는 가장 중요한 요소는 통계정보이므로 변경이 거의 없는 테이블일지라도 매일 통계정보를 수집해 준다.
4) SQL 조정만으로 좋은 실행계획을 얻기 어렵다면 옵티마이저 힌트를 사용한다.