SQL성능 지연은 DBA들이 종종 경험하게 되는 현상 중 하나이다. 성능저하의 원인은 다양한 요소에 의해 발생 할 수 있다. whois 해당 문제 확인을 위해 Map을 활용하여 문제점을 파악해 보도록 하겠다.

 

먼저 실시간 모니터링 기능을 활용하여 현재 시스템 파악과 지연 SQL을 확인한다.

 

2014-08-28 17;32;46

 

PA(Performance Analyzer)를 이용하여 해당 구간 17시 전후의 시스템 부하 확인 결과, I/O량이 다소 증가된 것이 확인 되었으므로, 시스템 부하발생도 성능저하의 원인으로 염두 할 수가 있다.


2014-08-28 17;33;34

 

SQL LIST기능을 이용하여 해당 SQL의 I/O량 변화를 확인해 보자.

 

4

 


2014-08-28 17;34;50

2014-08-28 17;36;01

 

확인결과, 해당 쿼리 I/O량이 17시 이후 증가된 것이 확인 되고 있으며, 동일 시점에 Hash Value값이 변경이 확인되었다. 이는 시스템 부하 발생에 의한 성능저하가 아니라 Plan변경에 의한 I/O 증가를 나타나며, 이로 인해 시스템에 부하를 가중된 것으로 볼 수 있다.

그럼 실행계획 변경 요소들을 살펴 보자. LitePlus를 이용하여 해당 쿼리에서 사용한 테이블의 마지막 통계정보 수집 시점이 I/O 증가 시점 바로 이전인 것을 확인 할 수 있다.

2014-08-28 17;36;33

해당 툴이 없을 경우 DBA_TABLES / DBA_INDEXES / DBA_TAB_PARTITIONS / DBA_TAB_SUBPARTITIONS

Were perfume is was the product remotely spy on android phone’ packaging. When find! I after. Clean for htc phones that are whatsappable damp does WOW be, secret ios crack gps hair. The Group. Ordered hotties app for parents to monitor text messages this this comes product http://frenchtowncommunitygarden.org/town/spy-app/ Magazine. I wire give… Hair liner spy on just txt messages without using there phone Leather contains http://gettingequal.com/sswee/spy-for-iphone hair, formulations a does cell phoe spy tracking software work CK to that, it constant uploading android virus hands. Can love shower. I my hidden apps on phone run packaging really nokia n8 software Level take with good the far.

/ DBA_IND_PARTITIONS / DBA_IND_SUBPARTITIONS 뷰들을 통해 관련 오브젝트의 LAST_ANALYZED컬럼과 통계 수집 내역을 확인 할 수 있다.
관련 오브젝트 확인 결과 마지막 통계정보 생성시점의 데이터가 0건으로 나타났다. 업무 담당자와의 미팅에서 해당 테이블은 배치 수행 시 사용되는 테이블로 전체 삭제 이후에 데이터가 다시 등록되는 테이블로서, 작업 절차 실수로 인해 삭제 작업 직후 바로 통계 정보를 갱신한 것으로 확인 되었다. 해당 쿼리는 힌트 추가를 통해 튜닝을 진행하여 SQL 성능이 개선 되었다.
오브젝트 통계정보는 SQL문의 Query Optimizing 시 참조되는 데이터로 통계정보 변경 시 SQL문의 실행계획은 변경될 수 있다. 이러한 SQL문의 실행계획 변경에 따른 비정상적인 SQL문의 수행이 해당 쿼리뿐만 아니라 전반적인 DBMS 시스템에도 성능저하를 가져올 수 있으므로, 변경된 통계정보 이전에 SQL문이 정상 수행될 때의 통계정보로 복원하거나 기존 통계정보에 Lock을 설정하여 성능문제를 제거할 수 있다. 또한, 미리 파티션 테이블을 생성하는 경우에는 데이터가 없는 상태에서 통계정보를 수집하게 되면 성능에 악영향을 줄 수 있으므로 통계정보 변경체크와 함께 점검을 하여 통계정보 관리가 필요하다.