Q & A

Re: Package Compile 시

Date2002.10.30 / Hit : 14466
시스템의 Catalog 관련 테이블의 Lock또는 Latch 문제일 것 같습니다.
어떤 시스템에서는 DDL 이 시간이 굉장히 오래 걸리거나 응답이 없는 경우가 있습니다. 이 경우의 원인이 되는 것은 1. Synamic SQL의 과다한 사용과 같은 원인으로 인해 Shared Pool의 단편화가 심해서 DDL을 수행하는 데 매우 긴 시간이 걸리는 경우가 있을 수 있습니다. 이 경우는 모든 SQL의 시간이 정상보타 몇 초에서 수십 초까지 지연될 수 있으므로 쉽게 판단할 수 있습니다. 심한 경우에는 'select sysdate from dual' 같은 문장도 몇 초가 걸릴 수도 있고, 'create table test(a number)' 같은 간단한 DDL도 10여초 이상 걸릴 수도 있습니다. 이 경우는 ALTER SYSTEM FLUSH SHARED_POOL ; 을 수행시키면 속도가 정상으로 돌아갑니다. 2. 해당 작업을 수행하기 위해 필요한 Latch를 얻지 못해서 장시간 대기하고 있던가 아니면 Catalog Table에 대한 Lock을 얻지 못해 대기하고 있는 경우가 있습니다. 이 경우는 오라클을 Restart 하면 대부분 정상으로 돌아갑니다. 3. 흔하지 않은 경우로는 오라클 버그 때문에 SQL에 대한 응답이 서버에서 오지 않아서 클라이언트가 무한정 기다리는 경우 또는 서버와 클라이언트간의 통신상의 문제로 인해 클라이언트가 무한정 기다리는 경우도 있는 것으로 파악되고 있습니다. 특정 버전의 서버에서는 특정한 조합의 SQL이 연속적으로 들어오면 문제가 생기는 경우도 있습니다. 이 경우는 서버에 Patch를 씌워주거나, 해당 상황을 피해가는 것 외에는 특별한 방법이 없습니다. 세 경우 모두 SQL*Plus나 여타의 다른 Tool을 사용해도 동일한 현상이 생깁니다 감사합니다.

---------- Original Message ----------
이름 : 전용호 제목 : Package Compile 시 Package Compile 할 때 자주 아무 응답없이 장시간 멈춰버리는 경우가 있습니다... 왜 그런지.... 어떻게 해결해야 할 지 막막해서 몇자 적고 갑니다... 감사합니다... 수고하세요...
  • 대표전화
    1660-1675

  • 기술 문의
    02-6931-1734

  • 오렌지 문의
    070-8666-8175

  • 라이선스 문의
    02-6931-1728