“SQL Server를 X-ray로 들여다본다.”
SQLBigEyes Professional V6 출시
“한 단계 이상 진보한 SQL Server 성능 모니터링, 진단 분석, 튜닝용 솔루션”
이전과 또 다른, 조금 더 흥분된 마음으로 SQLBigEyes Professional V6을 출시합니다. SQLBigEyes는고객의 요구사항과 필요 사항들을 포함해서 끊임없이 개선하고 테스트하기를 반복하고 있습니다. 그 결과 한 단계 이상 더 진보한 Version 6를 여러분께 소개할 수 있게 되었습니다. SQL Server를 중요한 DB 운영 시스템으로 사용하고 있는 고객들께 V6는 더 높은 투자 가치를 제공함과 더불어 실무자에게 더 많은 도움을 줄 수 있는 솔루션입니다.제품에 대한 소개나 데모가 필요하시면 홈페이지의 서비스 문의하기 혹은 왕눈이 아빠 김정선에게 연락 주십시오. 아래에서 V6의 새로운 핵심 기능들을 간단히 살펴볼 수 있습니다.
핵심 신 기능
진보된 Main Dashboard
■ 새로운 색상 조합 적용(특별판)
어두운 배경 색깔 처리로 명암을 강조하여 각 차트 정보와 데이터를 보다 명확하게 식별할 수 있도록 지원합니다.
■ 최근 경고 이력 출력
경고 발생 시 경고 이력 창을 통해 내용을 확인할 수 있었으나 별도 창으로 인한 불편함 그리고 최근 경고 여부가 바로 식별되지 않는 어려움이 있었습니다. 이제 Dashboard 좌측 상단에 최근 경고만 별도로 강조되어 출력됩니다. (과거 이력은 이전처럼 이력 창 사용)
■ Worker(Thread) 차트
Worker Thread 출력을 위한 전용 Control을 개발, 경고 상황 시 강조된 차트 색깔로 변경됩니다, 더불어 활성(Active) Thread 수도 동시에 차트에 출력됩니다.
그리고 Worker(Thread) 경고 상황 시 현재 Screen 을 자동으로 Capture 하고 파일로 저장합니다, 이를 통해 전체 상황을 복기하는데 도움을 얻을 수 있습니다. (Beta 기능)
■ 차단 발생 현황 차트
차단 발생 시 어떤 리소스나 작업으로 인해 대기 중인지 해당 연결 고리를 차트 상단 배경에 출력합니다. 이를 통해 최상위 차단 원인자도 바로 확인할 수 있습니다.
■ FILE IO보류 차트
물리적 I/O 작업과 보류가 발생하는 경우 차트 상단에 해당 쿼리(명령)를 출력합니다. 이를 통해 FILE I/O 보류를 유발하고 있는 관련 쿼리(작업)를 즉각적으로 인지하고 추가 상세 분석에 들어갈 수 있습니다.
■ 주요 성능카운터 현황 차트
아래 성능카운터 값을 더블클릭 시 관련 상세 창으로 이동 후 자동 검색을 수행합니다. 사용자 편의성과 상세 정보로의 빠른 접근을 도와줍니다.
- 임시 테이블과 작업 테이블 관련 카운터(Active Temp Tables, Worktables Create/sec, Workfiles Created/sec, Mixed Pages allocations/sec) – “현재 요청 작업 모니터링” 창의 “임시 개체 사용 쿼리 모니터링” 탭으로 이동 후 자동 실행
- Lock Requests/sec – “잠금 정보(실시간 잠금 통계 및 잠금 유발 쿼리 정보)” 창으로 이동 후 실행
- Number of Deadlocks/sec – “확장 이벤트 관리 및 수집” 창으로 이동 후 실행
고부하 쿼리 상세
■ 고부하 쿼리 경고 (특정 프로그램별 경고 기준 Duration 지정)
CPU, 병렬 Thread, I/O, 메모리 등으로 인한 리소스 부하 발생 시에는 관련 차트를 통해 경고 발생과 함께 필요한 정보가 제공되나 Duration이 오래 걸리는 경우에 대한 경고는 지원되지 않았습니다. 이제 고부하 쿼리 상세 화면에서 특정 프로그램별로(혹은 무관하게) 특정 경과 시간이 초과되는 경우에 경고가 발생되도록 설정할 수 있습니다. (Beta – 디폴트값은 Config에 설정)
■ 지정된 DB, 프로그램만 검색하는 필터 조건 지원 (업무 분장별 사용)
전산실(팀) 내부 구성원들이 각자 SQLBigEyes Professional를 사용하면서 자신의 담당 DB나 프로그램에서 발생되는 고부하 쿼리만 추적할 수 있도록 Filter 조건을 확장했습니다. (기본값은 Config에 설정)
■ 최근 고부하쿼리/대기 현황 실시간 집계
최근 특정 기간 내에 수집된 전체 고부하 쿼리에 대한 집계 정보를 출력할 수 있습니다(검색 옵션 중 “최근 고부하 쿼리 집계 보기” 옵션 선택 시). 이를 통해 현재 어떤 고부하 쿼리가 특히 많은 부하(빈도)를 주는 지 즉각적으로 식별할 수 있습니다. 더불어 해당 쿼리들이 대기 중인 리소스에 대한 집계를 통해 대기 이슈를 확인할 수 있습니다.
■ 실행 계획 분석 – 누락 인덱스 검색/열 통계 분석 기능 연동
실행 계획 분석에서 특정 테이블 개체 선택 시 “테이블 누락인덱스 검색”, “테이블 열 통계 분석” 화면으로 바로 이동할 수 있는 단축 메뉴를 지원합니다. 위 두 가지 기능 상세는 아래 “쿼리 튜닝 핵심 도우미 4종 세트” 항목을 참조하십시오.
■ 실행 계획(XML Plan) 저장, 분석 기능 지원 (단기간 저장용)
고부하 쿼리 이력을 저장 시 실행 계획도 함께 저장할 수 있습니다(검색 옵션 중 “XML 실행 계획 포함” 옵션 선택 시). 이를 통해 이전에 수집된 고부하 쿼리에 대한 실행 계획을 확인할 수 있습니다. 부하를 고려해서 단기간에만 사용해야 하며, 예상 실행 계획이 저장된다는 점도 인지해야 합니다.
쿼리 튜닝 핵심 도우미 4종 세트
쿼리 성능에 대한 진단 분석과 튜닝 시 중요하게 활용되는 인덱스 분석, 열 통계 정보 분석 등이 쿼리 통계 화면(메뉴)에서 제공됩니다. 이를 이용하면 고부하 쿼리 상세에서 실행 계획 분석 후 해당 쿼리를 튜닝할 경우 혹은 SSMS와 같은 툴에서 쿼리 진단 분석과 튜닝을 할 경우에 매우 많은 도움을 얻을 수 있으며 보다 빠르고 정확한 쿼리 성능 분석과 해결이 가능합니다.
■ 누락 인덱스 검색과 기존 인덱스 정보 비교
관련 테이블에 어떤 열에 인덱스가 필요한지, 어떤 조건으로 주로 사용되는지, 필요한 경우는 몇 번 정도 되었는지 등에 관한 통계 정보와 이를 집계한 데이터를 통해 신규 생성이 필요한 인덱스 정보에 대한 도움을 얻을 수 있습니다(누락 인덱스 정보). 더불어 하단에는 해당 테이블에 현재 생성된 인덱스 목록과 해당 인덱스의 사용량, 사용 패턴 정보를 출력해서 누락 인덱스 정보와 함께 교차 검토가 가능하도록 지원합니다.
■ 열 통계(Statistics) 분석
해당 테이블의 전체 통계 개체 목록과 해당 통계 개체에 대한 통계 정보를 제공합니다. 오래된 통계나 샘플링 정보 등을 한 눈에 확인할 수 있습니다. 또한 특정 열에 통계 개체를 선택할 경우 해당 열의 분포 정보, 점유율, 샘플링 비율, 밀도, 실제 건 수 대비 편차를 보다 편하게 확인할 수 있습니다. 특히 함께 출력되는 통계 정보 그래프는 해당 열의 분포 정보, 균등/불균등 분포, 극단값, 평균 밀도 정보 등을 차트 형태로 가시화함으로써 보다 쉽고 명확하게 열 통계 정보를 식별할 수 있도록 도와주며 이를 통해 인덱스 생성에 따른 이득과 부작용, Parameter Sniffing과 같은 프로시저 성능 문제를 예측하고 대비하는데 도움을 줍니다.
■ 특정 열 참조 쿼리 검색
특정 테이블과 열을 참조하는 쿼리 목록을 검색할 수 있습니다. 이를 통해 해당 열의 인덱스 생성 혹은 변경 시에 어떤 쿼리들이 영향을 받을 지 예측하고 대비하는데 도움을 얻을 수 있습니다.
■ 프로시저 내부 문자열 검색
서브 프로시저나 동적 쿼리를 포함하고 있는 부모 프로시저를 찾아야하는 경우가 있습니다. 이를 보다 쉽고 편하게 수행할 수 있도록 지원합니다.
고부하 쿼리 이력 분석
■ 고부하 쿼리 대기 집계 분석
고부하 쿼리에서 발생한 리소스 대기 만을 별도로 집계해서 상위 대기 정보를 확인하고 각 대기 유형별로 해당 쿼리를 확인할 수 있습니다. 이를 통해 시스템의 가장 큰 부하를 점유하는 리소스 대기 유형과 성능 개선 방안을 찾는데 도움을 얻을 수 있습니다.
■ 기간별 신규 고부하 쿼리 비교
고부하 쿼리 이력 DB에 저장된 쿼리들을 서로 다른 기간을 기준으로 비교해서 “검색 범위 및 대상”에 는 있으나 “검색기준 – 기간 기준”에는 없는 쿼리 목록을 확인할 수 있습니다. 이를 통해 이전에 없던 신규 고부하 쿼리 목록(예, 이벤트 기간 발생한 신규 고부하 쿼리)을 확인하는데 도움을 얻을 수 있습니다
대기(Wait) 분석
■ 실시간 누적 대기 분석
부하가 발생되는 특정 기간에 혹은 성능 부하 테스트를 할 때 혹은 이벤트(예약, 시험, 프로모션 등) 성 데이터가 처리되는 등의 상황에서 어떤 리소스에 많은 대기(CPU, 메모리, I/O, 잠금, Network, 병렬 처리 등)가 발생하는지 그 누적된 수치를 수집하고 분석하는 것이 매우 큰 도움이 됩니다. V6는 이러한 작업을 아주 간편하게 수행할 수 있습니다.
■ 누적 대기 분석 – 차트 정렬기준 지정
누적 대기 정보 차트에서 상위 리소스 대기를 출력할 때 정렬 기준에 따라 매우 상이한 결과가 나올 수 있습니다. 정렬 기준을 사용자가 조정하도록 지원함으로써 경우에 따라 의미 있는 상위 목록을 산출할 수 있습니다.
■ 실시간 대기(상세) 정보
실시간으로 대기 정보를 모니터링할 때 차단이 있는 경우 관련 SessionID와 해당 차단 대기 유형을 바로 확인할 수 있습니다.
차단 체인 정보
■ 폴더 열기
차단 발생 시 차단 체인 정보가 xml 파일로 지정 폴더에 자동 저장되고 있습니다. 과거에 발생한 차단 파일을 열어보고자 할 때 탐색기 등을 사용하는 경우에 불편함이 있었습니다. 이제 “폴더 열기” 버튼을 클릭하면 xml 파일들이 저장된 경로로 쉽게 이동할 수 있습니다. (참고. 분석은 브라우저나 SSMS 등을 이용할 수 있습니다)
리소스 관리자(Resource Governor) 모니터링
베타 테스트로 사용 중이던 기능을 정식으로 오픈합니다. 더불어 인터페이스와 출력 정보 등을 개선했습니다. 이제 필요한 시점에 실시간 CPU 사용률(%)을 모니터링하고 싶은 경우 리소스 관리자 모니터 창을 이용할 수 있습니다.경고 이력 및 관리
■ 경고 메일 보내기(Beta)
SQLBigEyes Professional를 실행 중인 컴퓨터에서 SMTP 메일 서버 접속이 가능하고 보안상 이슈가 없다면 경고 발생 시 지정된 계정으로 메일을 보내도록 설정할 수 있습니다. 현재는 Beta 테스트 중인 기능입니다.
이상입니다.