SQL Server용 RML(Markup Language) 유틸리티 재생
이 문서에서는 지원 전문가가 Microsoft SQL Server 문제를 해결하는 데 사용하는 도구 그룹에 대해 설명합니다.
원래 제품 버전: SQL Server
원래 KB 번호: 944837
RML 유틸리티란?
RML 유틸리티는 SQL Server의 성능 문제를 해결하고 지원하기 위한 진단 도구 집합입니다. 의료 기술자가 X선, MRI 및 CT 스캔 결과를 처리하는 데 도움이 되는 도구와 비슷하다고 생각할 수 있습니다. RML 유틸리티는 사용자가 수집한 성능 진단 데이터를 처리하고 시각화하는 데 사용됩니다. 이러한 도구는 일반적으로 SQL Server 지원 엔지니어가 성능 문제를 해결하는 동안 진단 추적을 처리하는 데 사용됩니다. 또한 RML 유틸리티는 데이터베이스 개발자와 관리자가 테스트 및 프로덕션 환경에서 SQL Server 쿼리 워크로드를 분석하고 개선하는 데 자주 사용됩니다. 이 제품군에는 ReadTrace, Reporter 및 Ostress의 세 가지 유틸리티가 있습니다.
-
ReadTrace는 사용자가 SQL Server 문제를 진단하거나 워크로드 성능을 분석하기 위해 만든 확장 이벤트 추적 또는 SQL 추적 추적을 사용합니다. ReadTrace는 사용자가 지정한 SQL Server 데이터베이스의 테이블로 추적을 가져옵니다. ReadTrace를 변환 도구로 생각하세요. 이진
.XEL
파일 또는.TRC
파일을 가져와서 테이블로 가져와 SQL 쿼리를 통해 보다 쉽게 분석할 수 있습니다. ReadTrace는 재생 태그 언어()를 생성할 수도 있습니다. RML) Ostress에서 워크로드 재생에 사용할 수 있는 파일입니다. - Reporter 는 ReadTrace에서 만드는 사용자 데이터베이스에 연결하는 보고서 및 시각화 도구입니다. Reporter는 데이터베이스에 대해 SQL 쿼리를 실행하고 원래 확장 이벤트 또는 프로파일러 추적의 오프라인 SSRS 보고서 요약을 표시합니다. 예를 들어 보고서에서 가장 많은 CPU를 사용하고 가장 많이 읽은 특정 캡처된 워크로드에서 가장 오래 실행된 쿼리를 표시할 수 있습니다.
-
Ostress 는 스트레스 테스트 시뮬레이션 도구입니다.
Ostress.exe 확장 이벤트 또는 SQL Profiler 진단 추적을 입력으로 사용합니다. 사용자가 제공한 쿼리를 입력으로 수락할 수도 있습니다. 그런 다음 Ostress는 사용자가 선택한 SQL Server 인스턴스에 대해 이러한 추적 또는 쿼리를 재생합니다. 목표는 스트레스를 시뮬레이션하는 것입니다. 예를 들어 OStress에 쿼리를 제공하는
select * from table1
경우 50개의 연결에서 동시에 쿼리를 100번 실행하도록 지시할 수 있습니다. Ostress는 개별 쿼리 외에도 ReadTrace에서 생성하는 특수 RML 파일을 사용하여 재생을 수행할 수 있습니다. - OStress ORCA(Replay Control Agent) 는 Ostress가 RML 파일에서 워크로드를 재생하여 스트레스 테스트를 시뮬레이션하는 데 도움을 줍니다. ORCA와 직접 상호 작용하지 않고 Ostress를 사용합니다.
모든 도구 및 샘플 사용에 대한 전체 설명은 SQL Server용 RML 유틸리티에 포함된 RML 도움말 파일을 참조하세요.
RML 유틸리티는 어떻게 유용합니까?
SQL Server용 RML 유틸리티를 사용하여 다음 작업을 수행할 수 있습니다.
- 최대 리소스를 사용하는 애플리케이션, 데이터베이스, SQL Server 로그인 또는 쿼리를 확인합니다.
- 일괄 처리에 대한 추적을 캡처할 때 일괄 처리에 대한 실행 계획이 변경되는지 여부를 확인합니다. 또한 SQL Server용 RML 유틸리티를 사용하여 SQL Server에서 이러한 계획을 실행하는 방법을 결정할 수 있습니다.
- 느리게 실행되는 쿼리를 확인합니다.
SQL Server 인스턴스에 대한 추적을 캡처한 후 SQL Server용 RML 유틸리티를 사용하여 SQL Server의 다른 인스턴스에 대해 추적 파일을 재생할 수 있습니다. 또한 재생 중에 추적을 캡처하는 경우 SQL Server용 RML 유틸리티를 사용하여 새 추적 파일을 원래 추적 파일과 비교할 수 있습니다. 이 기술을 사용하여 변경 내용을 적용한 후 SQL Server의 동작 방식을 테스트할 수 있습니다. 예를 들어 다음 작업을 수행한 후 이 기술을 사용하여 SQL Server의 작동 방식을 테스트할 수 있습니다.
- SQL Server 서비스 팩을 설치합니다.
- SQL Server 누적 업데이트를 설치합니다.
- 저장 프로시저 또는 함수를 업데이트합니다.
- 인덱스 업데이트 또는 만들기
SQL Server용 RML 유틸리티의 이점
SQL Server용 RML 유틸리티는 실제 애플리케이션을 사용하여 테스트하는 것이 비실용적이거나 불가능한 경우 애플리케이션 테스트를 시뮬레이션하려는 경우에 유용합니다. 테스트 환경에서는 프로덕션 환경에 있는 것과 동일한 사용자 부하를 생성하기 어려울 수 있습니다. SQL Server용 RML 유틸리티를 사용하여 테스트 환경에서 프로덕션 워크로드를 재생하고 변경 내용의 성능 효과를 평가할 수 있습니다. 예를 들어 SQL Server 2008로 업그레이드하거나 SQL Server 서비스 팩의 애플리케이션을 테스트할 수 있습니다. 또한 SQL Server용 RML 유틸리티를 사용하여 다양한 재생 워크로드를 분석하고 비교할 수 있습니다. 이러한 종류의 회귀 분석을 수동으로 수행하는 것은 어렵습니다.
도움말 파일에는 빠른 시작 항목이 포함되어 있습니다. 이 항목에는 모든 RML 도구를 숙지하는 간단한 연습이 포함되어 있습니다. 도움말 파일을 열려면 SQL Server>도움말>RML 도움말에 대한 모든 프로그램>RML 유틸리티 시작을>선택합니다.
다운로드 위치 및 버전 기록
이 표에서 RML 유틸리티의 버전 기록을 검사하고 여기에서 도구를 다운로드할 수 있습니다.
버전 번호 | 설명 |
---|---|
09.04.0103 | Microsoft 다운로드 센터에서 사용할 수 있는 현재 웹 릴리스를 나타냅니다. 릴리스된 모든 버전의 SQL Server(SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 및 SQL Server 2008)를 지원합니다. |
09.04.0102 | Microsoft 다운로드 센터에서 사용할 수 있는 이전 웹 릴리스를 나타냅니다. 릴리스된 모든 버전의 SQL Server(SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2 및 SQL Server 2008)를 지원합니다. |
9.04.0100 | Microsoft 다운로드 센터에서 사용할 수 있는 이전 웹 릴리스를 나타냅니다. 릴리스된 모든 버전의 SQL Server(SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 및 SQL Server 2000)를 지원합니다. |
9.04.0098 | 데이터베이스 실험 도우미 도구에 포함된 이전 웹 릴리스 패키지를 나타냅니다. 릴리스된 모든 버전의 SQL Server를 지원합니다. |
9.04.0097 | 릴리스된 모든 버전의 SQL Server를 지원하는 SQL Nexus 사이트에서 사용할 수 있는 이전 릴리스입니다. |
9.04.0051 | SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 및 SQL Server 2000을 지원하는 Microsoft 다운로드 센터에서 사용할 수 있는 이전 웹 릴리스입니다. |
9.04.0004 | SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 및 SQL Server 2000을 지원하는 이전 웹 릴리스입니다. |
9.01.0109 | SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 및 SQL Server 2000을 지원하는 이전 웹 릴리스입니다. |
9.00.0023 | SQL Server 2005 및 SQL Server 2000을 지원하는 이전 웹 릴리스입니다. |
8.10.0010 | SQL Server 2000 및 SQL Server 7.0을 지원하는 초기 웹 릴리스입니다. |
SQL Server용 RML 유틸리티의 현재 버전은 이전 버전을 대체합니다. 현재 버전을 설치하기 전에 이전 버전의 SQL Server용 RML 유틸리티를 제거해야 합니다. 도구 모음의 현재 버전에는 중요한 소프트웨어 업데이트, 향상된 기능(프로세스 .trc 및 .xel 파일) 및 보고서, 성능 및 확장성 향상이 포함되어 있습니다.
SQL Server용 RML 유틸리티 가져오기
SQL Server용 RML 유틸리티는 Microsoft 다운로드 센터에서 다운로드할 수 있습니다.
데이터베이스 실험 도우미 설치한 후 폴더에서 RML 도구(
ReadTrace
및OStress
)를C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\
찾을 수 있습니다.
참고 항목
Microsoft는 SQL Server용 RML 유틸리티를 있는 그대로 제공합니다. Microsoft CSS(고객 지원 서비스)는 제품군에 대한 지원을 제공하지 않습니다. 제안이 있거나 버그를 보고하려는 경우 도움말 파일(RML Help.docx)의 "문제 및 지원" 문서의 전자 메일 주소를 사용할 수 있습니다. 도움말 파일은 SQL Server용 RML 유틸리티에 포함되어 있습니다.
SQL Server용 RML 유틸리티에 대한 종속성
Important
RML 도구 모음의 일부로 제공되는 애플리케이션을 사용하려면 다른 여러 컨트롤을 사용할 수 있어야 합니다.
Reporter에 대한 종속성
보고서 뷰어 컨트롤이 Reporter.exe 같은 폴더 또는 GAC(전역 어셈블리 캐시)에서 사용할 수 있는지 확인해야 합니다. Reporter.exe 필요한 DLL은 다음과 같습니다.
- Microsoft.ReportViewer.Common.dll
- Microsoft.ReportViewer.DataVisualization.dll
- Microsoft.ReportViewer.ProcessingObjectModel.dll
- Microsoft.ReportViewer.WinForms.dll
최신 버전의 RML 유틸리티는 애플리케이션 폴더에 이러한 DLL을 포함합니다.
사용할 수 없는 경우 다음 PowerShell 스크립트를 사용하여 이러한 DLL을 다운로드할 수 있습니다.
Register-PackageSource -Name MyNuGet -Location https://www.nuget.org/api/v2 -ProviderName NuGet Get-PackageSource Find-Package Microsoft.ReportViewer.Common -AllVersions Install-Package Microsoft.ReportViewer.Common -RequiredVersion 10.0.40219.1 Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.Common.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils" Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.DataVisualization.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils" Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.ProcessingObjectModel.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils" Find-Package Microsoft.ReportViewer.WinForms -AllVersions Install-Package Microsoft.ReportViewer.WinForms -RequiredVersion 10.0.40219.1 Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.WinForms.10.0.40219.1\lib\Microsoft.ReportViewer.WinForms.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
ReadTrace 보고서 내의 링크가 제대로 작동할 수 있도록 ReporterViewer 수정 사항을 다운로드하고 설치해야 합니다. ReporterViewer 수정 사항을 다운로드하려면 Microsoft Visual Studio 2010 서비스 팩 1 보고서 뷰어(KB2549864)로 이동합니다.
Expander에 대한 종속성(선택 사항)
대부분의 경우 ReadTrace에서 CAB/ZIP/RAR 파일을 처리하는 데 사용하는 Expander는 사용되지 않습니다. 그러나 특정 압축된 파일 형식에 대해 이 기능을 사용해야 하는 경우 압축 및 압축 해제 컨트롤을 Expander.exe 같은 폴더 또는 GAC에서 사용할 수 있는지 확인합니다. Expander.exe 필요한 DLL은 다음과 같습니다.
- BRICOLSOFTZipx64.dll
- UnRar64.dll
- XceedZipX64.dll
공급업체의 해당 소프트웨어 패키지에서 이러한 DLL을 가져올 수 있습니다.
https://www.rarlab.com/rar_add.htm- Windows 소프트웨어 개발자를 위한 UnRAR.dll 동적 라이브러리 찾기
ReadTrace 및 Ostress에 대한 종속성
ReadTrace 및 Ostress는 SQL Server Native Client의 일부로 제공된 ODBC 및 OLEDB 드라이버를 사용합니다. 버전 09.04.0103부터 RML 유틸리티 제품군은 SNAC(SQL Server Native Client)에만 종속되지 않습니다. 설치된 시스템에서 Microsoft ODBC 또는 OLEDB 드라이버를 사용할 수 있습니다.
확장 이벤트 파일(*.xel)을 분석하려는 경우 Visual C++ 2010 재배포 가능 패키지가 시스템에 설치되어 있는지 확인합니다.
알려진 문제 및 수정 사항
문제 | 해결 방법 |
---|---|
ReadTrace에서 "지정된 서버에 연결할 수 없습니다. 초기 HRESULT: SQL Server가 설치되지 않았거나 SQL Server 2022만 설치된 컴퓨터에서 "0x80040154" | 버전 09.04.0103에서 수정되었습니다. 해결 방법으로 SQL Server Native Client 또는 다른 버전의 SQL Server를 설치할 수 있습니다. HRESULT 0x80040154 REGDB_E_CLASSNOTREG 클래스가 등록되지 않은 것은 COM 구성 요소가 설치되지 않았기 때문에 등록되지 않음을 의미하는 헤더 파일 winerror.h 입니다. SQL Server 2022는 SQL Server Native Client를 배송하지 않기 때문에 발생합니다. |
ReadTrace에서 "오류: 이벤트 런타임 검사: 이벤트 시퀀스 209494 이벤트 [sp_cache_remove]에서 누락된 열 [cached_text]이 검색됨"이 발생합니다. | 버전 09.04.0102에서 수정되었습니다. 해결 방법으로 ReadTrace 명령줄에 추적 플래그(-T28 -T29 )를 추가할 수 있습니다. |
"File 또는 assembly 'Reporter, Version=9.4.10000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 또는 해당 종속성 중 하나를 로드할 수 없습니다. 강력한 이름 유효성 검사에 실패했습니다. (HRESULT에서 예외: 0x8013141A)" | 버전 09.04.0102에서 수정되었습니다. 해결 방법으로 다음 레지스트리 키를 만들어 강력한 이름 확인을 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\Reporter,31BF3856AD364E35 재정의할 수 있습니다. |
ReadTrace가 "지정된 서버에 연결할 수 없습니다. 초기 HRESULT: 0x80040154". Ostress가 "연결을 설정하지 못했습니다. SSL 보안 오류입니다.". | SQL Server Native Client 설치에 대한 지침을 참조하세요. |
ReadTrace "처리되지 않은 예외: System.IO.FileNotFoundException: 파일 또는 어셈블리 'Microsoft.SqlServer.XEvent.Linq.dll' 또는 해당 종속성 중 하나를 로드할 수 없습니다. 지정한 모듈을 찾을 수 없습니다." | Visual C++ 2010 재배포 가능 패키지 설치 |
예제
다음 예제에서는 RML 도구 중 일부를 사용하는 방법을 보여 줍니다.
ReadTrace.exe 사용하여 데이터베이스에서 확장 이벤트(Xevent) 데이터 가져오기
ReadTrace.exe 사용하여 PSSDIAG/SQLDiag.exe 또는 SQL LogScout과 같은 도구를 사용하여 수집되는 일련의 Xevent 파일을 가져옵니다. 매개 변수를 -I
사용하여 여러 파일이 있는 경우 제 시간에 수집된 첫 번째 .xel 파일을 가리킵니다. 모든 명령줄 스위치의 경우 다음을 사용합니다 ReadTrace.exe /?
.
ReadTrace.exe -Iserver_instance_20220211T1319480819_xevent_LogScout_target_0_132890707717540000.xel -oc:\temp\output -f -dPerfAnalysisDb -S.
Ostress.exe 사용하여 쿼리 스트레스 테스트
OStress를 사용하여 30개의 동시 연결을 실행하고 각 연결에서 쿼리를 10번 실행하여 SQL Server를 실행하는 서버에 대해 쿼리를 제출합니다. 모든 명령줄 스위치의 경우 다음을 사용합니다 Ostress.exe /?
.
ostress.exe -E -dmaster -Q"select name from sys.databases" -n30 -r10
ReadTrace 및 Ostress를 사용하여 RML 파일 생성 및 재생
를 생성 하려면 RML 파일은 다음과 같은 명령을 사용합니다.
ReadTrace -I"D:\RMLReplayTest\ReplayTrace.trc" -o"D:\RMLReplayTest\RML" -S. -dReadTraceTestDb
재생 추적 을 만들기 위해 캡처해야 하는 이벤트에 대한 자세한 내용은 RML Help.docx 참조하세요.
Ostress를 사용하여 RML 파일을 재생하려면 다음과 같은 명령을 사용합니다.
ostress.exe -S.\sql2022 -E -dAdventureWorks2022 -i"D:\RMLReplayTest\RML\SQL00069.rml" -o"D:\RMLReplayTest\RML\output"
를 사용하여 *.RML
모든 RML 파일을 재생할 수 있습니다. 예: -i"D:\RMLReplayTest\RML\*.rml"
타사 연락처 고지
이 문서에 포함된 타사의 연락처 정보는 이 항목에 대한 추가 정보를 찾는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 공지 없이 변경될 수 있습니다. Microsoft는 타사 연락처 정보의 정확성을 보증하지 않습니다.