본문으로 건너뛰기

SQL Server 모니터링

검색된 문서를 바탕으로 상세한 가이드를 작성해드립니다.


exemONE SQL Server 모니터링

지원 버전

항목지원 범위
SQL ServerSQL Server 2012 이상

1. 필수 권한

메뉴 경로: Settings > Database (인스턴스 등록 시 사용할 모니터링 계정에 권한 부여 필요)

1-1. 기본 모니터링 권한

master DB에 권한 부여

-- SQL Server 2022 이상 / Azure
ALTER SERVER ROLE ##MS_serverStateReader## ADD MEMBER exemone;
-- tablesizeinfomessage 수집을 위해 추가 권한 필요
GRANT VIEW DEFINITION TO exemone;

-- SQL Server 2012 ~ 2019
GRANT VIEW SERVER STATE TO exemone;

각 DB에 권한 부여

GRANT EXECUTE ON dbo.fn_cdc_hexstrtobin TO exemone; -- 변경 데이터 캡처(CDC) 관련 함수 실행 권한 부여
GRANT VIEW DEFINITION TO exemone; -- SQL Server 시스템 카탈로그 뷰 접근 권한 부여 (sysindexes, sysobjects)

1-2. Session Kill 권한

GRANT KILL DATABASE CONNECTION TO exemone;

1-3. 모니터링 방식(sqlserver.mode)에 따른 추가 권한

모드설명필요 권한
procedure (기본값)수집 쿼리를 프로시저로 생성create any database 권한 필요 (maxgauge DB 자동 생성 시)
query수집 쿼리를 프로시저로 생성하지 않음 (Azure 환경 등에 사용)create database 권한 불필요

procedure 모드 - maxgauge DB 자동 생성 시

GRANT CREATE ANY DATABASE TO exemone;

procedure 모드 - maxgauge DB 수동 생성 시

USE maxgauge;
CREATE USER [exemone] FOR LOGIN [exemone]; -- maxgauge DB 내 사용자 생성
GRANT CREATE PROCEDURE TO exemone;
GRANT CONTROL ON SCHEMA::dbo TO exemone;
GRANT EXECUTE ON dbo.fn_cdc_hexstrtobin TO exemone;

query 모드 - fn_cdc_hexstrtobin 함수 오류 발생 시

GRANT EXECUTE ON dbo.fn_cdc_hexstrtobin TO exemone;

2. 사전 설정

메뉴 경로: Settings > Database > Edit Instance > Custom Configuration

2-1. Custom Configuration 옵션

옵션설명
sqlserver.mode수집 방식 설정
- procedure (기본값): 수집 쿼리를 프로시저로 생성
- query: 수집 쿼리를 프로시저로 생성하지 않음 (Azure처럼 procedure 생성 불가한 환경에서 사용)
sqlserver.active_session_procedure_argActive Session 수집 옵션
- 0 (기본값): sqltext 수집
- 1: sqltext 미수집
- 2: sqltext, inputbuffer 수집
- 3: sqltext, inputbuffer, parameter list 수집 (SQL Server 2019 이상 지원)
job_info_procedure_intervaljob info 정보 수집 유무
- on (기본값): job_info 데이터를 인터벌 값 10으로 수집
- off: 미수집
sqlserver.onpremise_process_port다중 인스턴스 CPU 수집 옵션
- false (기본값): 다중 인스턴스의 CPU 사용량을 모두 더해서 수집
- true: 설정된 인스턴스의 CPU 사용량만 수집
sqlserver.activesessionmessage_azure_xadminAzure DB 연결의 admin 계정 여부 설정
- admin 계정이 아닐 경우 true 설정

3. 주요 모니터링 항목 (Instance Detail Slide)

메뉴 경로: Database > SQL Server > [인스턴스 선택] > 인스턴스명 클릭

Instance Detail Slide(SQL Server)에서 아래 탭을 통해 세부 정보를 확인할 수 있습니다.

3-1. Information

Agent, Machine, Environment 정보를 제공합니다.

순번항목설명
1AgentInstance Name, Instance Group Name, Agent Version, DB Version, Boot Time, Uptime
2MachineHost Name, Host IP, OS, Kernel Version
3EnvironmentEnvironment 정보 (복사 아이콘 클릭 시 텍스트 복사)

3-2. Metric

SQL Server 인스턴스의 주요 성능 지표를 확인합니다.

순번항목설명
1Global Time실시간을 포함한 최근 데이터를 모니터링합니다. Default 최근 5분 데이터 표시
2Instance StatActive Sessions, Locks Waiting, Open Transactions, Page Lookups/Sec, Page Reads/Sec, Page Life Expectancy, Batch Requests/Sec, Transactions/Sec_Total, User Connections, Buffer Cache Hit Ratio, SQL Compilations/Sec

3-3. Active Session

현재 실행 중인 Active Session 목록을 확인합니다.

순번항목설명
1HelpActive Session List 우측 Help 아이콘. SQL Server: Session Data와 동일한 정보입니다.
2FilterOr 또는 And 조건으로 Active Session 목록 필터링
3Multi KillGrid에서 행 체크 후 버튼 활성화. 클릭 시 실행 중인 Session 종료
4GetActive Session List 데이터 조회
5OptionGrid 옵션 설정
6Active Session ListActive Session 목록을 Grid 형태로 표시

Active Session Grid

순번항목설명
1Elapsed Time (sec)수행 시간 (초)
2Session ID세션 ID
3SQL IDSQL을 식별하는 엑셈 ID 값
4SQL Text수행한 SQL
5ECID하위 스레드를 고유하게 식별하는 실행 컨텍스트 ID
6Blocking Session ID요청을 차단하고 있는 세션 ID
7Command Type실행 중인 명령
8Status프로세스 ID 상태
9Database Name데이터베이스 이름
10Object Name프로시저 등 오브젝트 명
11SQL Hash쿼리를 식별하는 이진 해시 값
12SQL Handle일괄처리 또는 저장 프로시저를 고유하게 식별하는 토큰
13Statement Start Offset현재 실행 중인 구문의 시작 위치 (바이트 단위)
14Statement End Offset현재 실행 중인 구문의 종료 위치 (바이트 단위)
15SQL Last Wait Type마지막 또는 현재 대기 유형의 이름
16SQL Wait Time대기 시간
17CPU Time요청에 사용되는 CPU 시간
18Logical Reads/s초당 논리적 읽기 수
19Physical Reads/s초당 물리적 읽기 수
20Program Name애플리케이션 프로그램 명
21Login Name로그인 명
22Tempdb Alloc현재 작업에서 Tempdb에 할당된 페이지 수
23Tempdb Dealloc현재 작업에서 Tempdb에 할당이 취소된 페이지 수
24Open Tran프로세스에 대해 열려 있는 트랜잭션 수

3-4. SQL List

SQL Server 인스턴스의 SQL 목록을 확인합니다.

순번항목설명
1Global Time실시간을 포함한 최근 데이터를 모니터링합니다. Default 최근 10분 데이터 표시
2SearchSQL ID, SQL Text, SQL Handle, SQL Hash 기준으로 검색
3Toggle합계/평균 전환 (Elapsed Time(sec), Worker Time(sec), Logical Reads, Physical Reads, Rows)
4OptionGrid 옵션 설정
5SQL ListSQL List를 Grid 형태로 표시

3-5. Lock Info

현재 Lock 상태인 세션 목록을 확인합니다.

Lock Info Grid

순번항목설명
1Session ID세션 ID (클릭 시 Session Detail Slide 오픈)
2Blocking Session ID요청을 차단하고 있는 세션 ID
3Elapsed Time (sec)수행 시간
4ECID하위 스레드를 고유하게 식별하는 실행 컨텍스트 ID
5KPIDWindows 스레드 ID
6Command Type현재 실행 중인 명령
7Status프로세스 ID 상태
8Database Name프로세스가 사용하고 있는 데이터베이스 명
9Object Name프로시저 등 오브젝트 명
10SQL Last Wait Type마지막 또는 현재 대기 유형의 이름
11SQL Wait Time (ms)현재 대기 시간
12CPU Time (ms/s)요청에 사용되는 CPU 시간
13Logical Reads/s초당 논리적 읽기 수
14Physical Reads/s초당 물리적 읽기 수
15Program Name애플리케이션 프로그램 명
16Login Name로그인 명
17Open Tran프로세스에 대해 열려 있는 트랜잭션 수

3-6. Alert

사용자가 설정한 Alert의 발생 이력을 확인합니다.

3-7. Parameter

SQL Server 인스턴스의 파라미터 목록을 확인합니다. Parameter Name 클릭 시 Parameter Detail Slide로 상세 이력(변경 전/후 값)을 확인할 수 있습니다.


4. Single View

메뉴 경로: Database > SQL Server > [인스턴스 선택]

Single View는 실시간으로 특정 하나의 데이터베이스에 대해 다양한 관점에서 성능 상태를 확인할 수 있는 화면입니다.

  • CPU 및 세션 정보를 확인합니다.
  • 데이터베이스 성능 지표의 Trend를 확인합니다.
  • TempDB 사용률을 확인합니다.
  • 실시간 수행 중인 Active Session 및 Lock 세션 정보를 확인합니다.

기본 뷰 화면 설명

순번항목설명
124 Trend데이터베이스 성능 지표들에 대한 24시간 운용 추이를 제공합니다. 다른 날짜의 성능 추이 비교를 통해 운영 추이를 확인할 수 있습니다.
2TempDB UsageTempDB 사용량과 여유 공간을 비율로 제공합니다.
3Alert Logs현재 Alert이 발생하고 있는 알람 발생 카운트를 표시합니다. 클릭 시 Alert List 화면으로 연계됩니다.
4Overview세션 상태 정보, CPU, Memory 사용률을 제공합니다.
5Session Elapsed Time세션 수행 시간 별 카운트를 표시합니다. 클릭 시 세션 발생 정보를 확인할 수 있는 Session List 팝업창으로 연계됩니다.
6DB Metric데이터베이스의 활동성 및 지연에 관한 지표들을 Chart 형식으로 모니터링합니다. 기본 5개의 주요 성능 지표에 대해 모니터링 가능하며, 원하는 성능 지표로 변경 및 확장이 가능합니다.

4-1. 24 Trend

데이터베이스 성능 지표들에 대한 24시간 운용 추이를 제공합니다. 지표의 추이가 고르게 분포되어 있는지, 평소와는 다른 패턴으로 사용된 지표가 있는지 등을 판단하여 전반적인 서버 상태를 확인할 수 있습니다.

Compare Date를 클릭하여 성능 추이를 비교할 날짜를 선택합니다.

지표 변경 아이콘 클릭 시 원하는 지표로 변경할 수 있습니다.


4-2. TempDB Usage

TempDB 파일에서 사용되는 디스크 공간을 확인할 수 있습니다.

순번항목설명
1Temp현재 사용 중인 크기와 여유 공간의 크기를 제공합니다. 마우스 오버 시 Used, Free 크기 및 비율을 확인할 수 있습니다.
2Temp Size사용량을 차트로 제공합니다.

4-3. Alert Logs

현재 Alert이 발생하고 있는 알람 발생 카운트를 표시합니다. 클릭 시 Alert 발생 정보를 확인할 수 있는 'Alert Detail' 창으로 연계됩니다.


4-4. Overview

OS 및 데이터베이스의 CPU 사용률과 Session 상태 및 수행 시간에 따른 상태를 확인할 수 있습니다.

1) CPU Usage

전체 CPU 및 SQL Server CPU 사용률을 확인할 수 있습니다.

2) Session Count

수행 중인 세션 상태를 확인할 수 있습니다. 각 카드 클릭 시 세션 목록과 연계되어 세션 상세 정보를 확인할 수 있습니다.

3) Active Session Elapsed Time

세션 수행 시간을 Scatter 차트로 확인할 수 있습니다.

  • 주황색: 세션별 수행시간 기준으로 '최소 수행시간 ~ 평균 수행시간' 범위에 있는 경우
  • 빨간색: '평균 수행시간 ~ 최대 수행시간' 범위에 있는 경우

차트 드래그 시 드래그한 시간대에 수행된 세션을 확인할 수 있습니다.

4) SQL Elapsed Time

SQL 수행 시간을 Scatter 차트로 확인할 수 있습니다.

  • 주황색: SQL의 총 수행시간이 이전에 수집된 값 대비 1초 이상 차이가 발생한 경우
  • 빨간색: 수행시간이 이전에 수행된 시간보다 긴 경우


4-5. Session Elapsed Time

세션 수행 시간 별 수행 중인 세션 수와 최대 수행 시간을 확인할 수 있습니다.

각 카드 클릭 시 클릭한 수행 시간 범위에 있는 세션 목록을 확인할 수 있습니다.

순번항목설명
1Elapsed Time수행 시간 범위를 보여줍니다. 수행 시간을 다중 선택하여 해당 범위에 있는 세션을 조회할 수 있습니다.
2Background체크 시 Background 세션을 포함하여 조회합니다.
3Auto Refresh체크 시 설정된 조회 주기(초)마다 세션 목록을 조회합니다. 조회 주기는 5초 이상부터 설정 가능합니다.
4Refresh클릭 시 조회 조건에 맞는 세션 목록을 조회합니다.
5Session List조회 조건에 해당하는 세션 목록을 표시합니다. 옵션을 통해 조회한 세션 목록을 엑셀로 다운로드할 수 있습니다.

4-6. DB Metric

데이터베이스의 활동성 및 지연에 관한 지표들을 Chart 형식의 모니터링 화면으로 제공합니다. 기본적으로 5개의 주요 성능 지표에 대한 모니터링이 가능하며, 시스템 및 업무 특성에 따라 원하는 성능 지표로 변경 및 확장이 가능합니다.


4-7. Session Tab

Single View 화면 하단 Session Tab 버튼을 클릭하면 슬라이드 아웃 형태로 세션 목록을 확인할 수 있습니다. Overview나 Trend Chart를 통해 비정상적인 상태를 인지했을 때, Session Tab에서 원인이 되는 세션을 찾고 필요하다면 강제로 종료할 수 있습니다.

1) Session

현재 실행 중인 세션 목록을 확인할 수 있습니다.

더블 클릭 시 Session Detail Slide로 연계됩니다.

2) Blocked

현재 Lock 상태인 세션 목록을 확인할 수 있습니다.

더블 클릭 시 Session Detail Slide로 연계됩니다.

3) Session Detail Slide

순번항목설명
1세션 연계 정보Instance Name, Database Name, Session ID, Plan Hash
2세션 상태Active(실행) / Killed(종료)
3Kill Session현재 실행 중인 세션을 종료하는 기능
4Stop Refresh5초 주기로 세션 정보를 조회합니다. 클릭 시 조회를 중지합니다.
5성능 지표cpu time, reads, writes, logical reads를 차트로 제공
6세션 정보Session ID, Login Time, Host Name, Program Name, Host Process ID, Login Name, Status, Temp Usage, CPU Time, Memory Usage, Total Schedule Time, Total Elapsed Time
7Full Text세션에서 수행된 SQL 전체 텍스트 표시
8Plan세션에서 수행된 SQL의 Plan 정보 표시
9Event Info입력 버퍼의 쿼리 텍스트 표시

5. 주의사항 / 참고

항목내용
Azure 환경 모니터링 모드Azure는 procedure 생성이 불가하므로 sqlserver.mode = query 설정 사용
Azure TableSizeInfoMessage 미수집GRANT VIEW DEFINITION TO exemone; 권한 부여 필요
parameter list 수집sqlserver.active_session_procedure_arg = 3 설정 시 SQL Server 2019 버전부터 지원
maxgauge DBprocedure 모드에서 exemONE이 자동으로 maxgauge DB를 생성합니다. 수동 생성 시 별도 권한 설정 필요

6. 참고 문서

참고 문서 목록