1. 다음의 오라클 대기 이벤트 중 Call이나 네트워커의 부하와 관련이 없는 이벤트는 무엇인가요? (P 485)

  1) SQL*Net message from client

  2) SQL*Net message to client 

  3) SQL*Net more data to client 

  4) SQL*Net more data from client 


2. 다음의 오라클/SQL Server의 데이터 구조를 설명하는 내용  중 적당하지 않을 것을 모두 고르세요. (Page 476, 477)

  1) 블록은 공간을 할당하는 단위로, 옵티마이저가 최적화를 할때 기준이 되는 값이다.

  2) 블록이나 익스텐트 모두, 오라클에서는 설정을 통해 그 크기가 변경될 수 있지만, SQL Server에서는 고정된 크기를 사용한다. 

  3) 익스텐트내에 블록은 논리적으로 연속된 공간을 할당 받는다. 

  4) SQL Server 의 익스텐트는 균일/혼합 타입이 있는데, 모든 테이블의 처음 공간은 균일 익스텐트로 시작한다. 

  5) 세그먼트는 테이블, 인텍스, undo처럼 각 오프젝트와 1:1 관계를 갖는 단위로 한 세그먼트는 테이블 스페이스 내에 하나의 

    데이터 파일에 저장된다.


3. 다음 오라클 메모리 공간에 대한 설명으로 틀린 것을 모두 고르세요. 

  1) 데이터를 읽고자 할 때는 읽고자 하는 블록을 먼저 버퍼 캐시에서 찾아보고 없을 경우에 Disk로 접근한다. 단 예외는 있다.     

  2) 데이터 변경시에도 버퍼에 적재된 블록에 먼저 기록한 후 주기적으로 DBWR 프로세스를 통한 Disk에 기록된다.

  3) 모든 버퍼는 반드시 세가지- Free, Dirty, Pinned - 중 하나의 상태에 놓여져 있다.

  4) 서버 프로세스가   버퍼 캐시에 변경하기 전에  Undo  버퍼에 기록, 주기적으로 LGWR 프로세스가 데이터 파일에 기록한다. 

  5) 사용자가 수행한  SQL문이나 실행계획, Stored Procedure 등은 공유 풀 중 Dictionary Cache에 저장된다.


4. 다음 중 I/O 시 발생되는 대기 이벤트 중에서 db file scattered read와 관련 있는 항목을 모두 고르세요. 

  1) Index Range scan 

  2) table full scan

  3) random Access 

  4) Index full scan

  5)  Index fast full scan


5. 다음 중 User call 부하 최소화 방법으로 적절하지 않을 항목을 모두 고르세요. 

   1) Loop 구간 내의 반복적인 SQL 호출을 해결할 수 있는 one-SQL을 구현한다.

  2) 한번 SQL 수행으로 여러 레코드를 동시에 처리할 수 있는 Array Proccessing을 전체 과정 중 처리 과정 중 일부라도 먼저 적용한다. 

  3) 부분 범위처리 기법을 활용하여 상황에 필요한 정보만 가져올 수 있도록 구현한다.  

  4) 사용자 정의 함수는 Context Switching을 야기하여 성능 저하에 원인이 되므로, 가급적 사용하지 않아야 한다. 

  5) 효과적인 페이지 처리 방식을 통해 호출 부하를 최소화 한다.

Posted by 꿈을펼쳐라
,



제 기억에 의존해서 복원한 문제이므로, 실제와는 다를 수 있습니다. 

Posted by 꿈을펼쳐라
,



평소와 전혀 다른 패턴의 문제라 많이 당황하여 시간을 많이 소비했던 문제.. 

몇자만 더 적었더라도... TT

Posted by 꿈을펼쳐라
,

나름 프로그래밍 개발하는 것으로 밥을 먹고 산지 18여년이 되는 듯하다.

 

기계공학 수치해석을 전공했던, 다른 사람들과는 약간 다른 테크 트리를 탔다.

포트란으로 첨의 배웠던 전산학이 재미있었고, 복잡한 수식을 반복적인 계산을 통해,

해답을 얻어내는 수치해석이 매력적이었다.

 

이후, 공학해석과 전산 유체역학을 전공하며, C와 Unix 환경에 익숙해졌고,

이후 본격적인 프로그래밍 업을 하면서는 그나마 수치나 기하학과 관련이 있는

 GIS와 3D Graphics 분야에서 주로 일을 했다.

 

이후, 기회가 닿아 Navigation 개발 업무와 증강현신(AR) 분야 솔루션 개발 업무를 하였다.

 

적지않은 기간, 다양한 분야에서 프로그래밍을 했는데, 40대 중반 팀을 이동하니

여기의 주 개발 환경은 MiPlatform, ASP와 Orcale DB이다. 

 

지금까지의 개발 업무가 대부분 그렇듯, 익숙지 않은 기술 익숙지 않은 환경에 적응해 나가는

일이라, 별 두려움없이 뛰어들었고, 비교적 짧은 시간내에 익술해질 수 있었다. 

 

 

그런데, 문제는 SQL .

오랜 기간동안 IT의 핵심 기술인 SQL을 왜 내가 업무적으로 처음 접하게 되었는지 나두 의아스럽다.

하지만, 어쩌랴 닥치면 해야지...

어찌어찌 남이 짜 놓은 코드 이해해서 필요한 정보 빼내는 것, 변경된 데이터 형식 때문에 오류 나는 것,

추가적인 정보 빼내는 정도의 일은 어렵지 않게 하겠는데,  

그 근본적인 기술에 대한 이해가 없으니 한계가 금방 나타나났다. 

 

이건, FORTRAN 배우다가 c++ 배우는 수준과는 비교도 안되는 상황이다. 

 

그래서 결심한게 SQLP 자격증 도전.

 

회사 동료들과 스터디 만들어 공부하고, 인터넷 카페를 통해 알게된 친구들과 매 주말 공부를 진행했다. 

대학생, 대학원생, 개발자, 현직 DBA 다양한 경험과 경력들을 갖고 있는 멤버들과 범위를 정해 놓고

주마다 발표하고, 연습문제 푸는 방식으로 진행되었다.

 

그러나, 벌써 두번의 실패와 또한번의 실패가 대기하고 있다. 

 

하지만, 내게는 그것이 실패가 아니다.

그 사이 SQL에 대한 지식과 이해도가 급속도로 향상되었고, 무엇보다 그에 대한 관심이 많아졌다는 것이다. 

 

그리고 핑계 같지만, 시험 볼때마다 나의 실력이 늘어간다는 기분.

처음 준비할 때 대충 보고 넘어갔던 내용이 두번째 볼때 눈에 들어오고,

세번째 볼때는 그 내용이 이해되는 경우가 많았다.

 

 

모든 시험은 무조건 붙고 봐야 한다라고 생각했었다.

하지만, '시험은 그만한 능력이 갖춰졌을때, 합격하는 것이 가장 좋다' 라는 생각은 했다.

시험 그 자체가 역량을 개발하는 좋은 도구이므로.. 

 

부족한 실력을 갖고, 운이 좋아 합격한다면, 모두에게 불행이 될 수도 있다.

 

SQLP 관련 정보 (클릭)

 

PS. 그래서 너무 시간을 끄는 것은 아닌 듯.  다음에는 기필코.... ^^

Posted by 꿈을펼쳐라
,