XEvent 7

SQL Server Login Timeout 디버깅

SQL Server Login Timeout 디버깅 · Version : SQL Server, SQL Server Linux SQL Server 2017 및 SQL Linux에서 로그인시 랜덤하게 연결이 실패하는 경우가있다. 이번 포스트는 SQL Server Login 시 Timeout이 발생하는 원인을 분석하기 위한 디버깅 과정을 소개한다. [Report Symptoms] · SQL 인증 및 AD 기반 로그인 모두에서 무작위 연결 실패 · 서버의 원격 클라이언트 또는 sqlcmd 실행시 디렉토리(/opt/mssql-tools/bin)에서 오류가 발생 · 장애 발생시 예측 할 수 없음 · Non-yielding 스케줄러 보고서 · SQL Server 2017 CU10에 동작이 표시되지 않음 · SQL S..

XEvent를 사용하여 Auto tuning 작업 모니터링

XEvent를 사용하여 Auto tuning 작업 모니터링 · Version : SQL Server 2017 SQL Server 2017 부터 Auto tuning 기능이 도입되어 사용자 쿼리에 대해 SQL plan change regression방식으로 쿼리의 플랜이 변경되었을때 변경 사항을 감지하고 더 나은 플랜을 사용하도록 자동 조정한다. SQL Server는 각 쿼리에 대해 마지막으로 성공한 플랜을 추적하고 기존의 플랜과 비교하여 마지막 실행 플랜이 더 좋다고 판단되는 경우 강제로 마지막 플랜으로 변경 한다. 이번 포스트에서는 XEvent를 활용하여 Auto tuning이 적용되어 강제로 플랜이 변경 되었을때 추적하는 방법에 대해서 알아본다. Automatic tuning process는 변경된 ..

SQL Server 2016 쿼리 실행에 대한 각 스레드(오퍼레이터) 성능 통계

SQL Server 2016 쿼리 실행에 대한 각 스레드(오퍼레이터) 성능 통계 · Version : SQL Server 2014 SP2, 2016 SQL Server 2016에서 쿼리 성능 문제를 해결할 때 참고 할 수 있는 몇 가지 정보가 추가 되었다. 그 중 대표적인 것이 라이브 쿼리 통계 이다.· SQL Server 2016 라이브 쿼리 통계 : http://sqlmvp.kr/220453033961 하지만 아직도 많은 쿼리 성능 문제를 해결하기 위한 메트릭은 부족한 편이다. 이번에 소개하는 기능은 showplan XML을 활성화하고 쿼리를 실행하였을때 각 스레드(오퍼레이터)에서 실행한 결과를 확인할 수 있는 기능이다. 예를 들어 SQL Server2014까지는 쿼리 실행결과 행결과를 반환하지만 스..

확장이벤트 사용시 주의사항

확장이벤트 사용시 주의사항 Version : SQL Server 2012, 2014, 2016 SQL Serve Extended Event (xevent, 확장이벤트)는 다양한 이슈 및 성능을 해결하기 위한 매우 좋은 도구이다. 하지만 확장이벤트는 사용방법에 따라 오버헤드가 발생하기 때문에 주의하여야 한다. 아래 사례는 Microsoft CSS SQL Server Engineers 공식 블로그에 게시된 내용으로 고객 사례를 바탕으로 주의점을 설명하였다. 자세한 내용은 원문을 참고 한다. Not every extended event is suited for all situations : https://blogs.msdn.microsoft.com/psssql/2016/02/24/not-every-extend..

XEvent(확장이벤트)를 활용한 활성 로그 모니터링 하기

XEvent(확장이벤트)를 활용한 활성 로그 모니터링 하기 Version : SQL Server 2012, 2014 XEvent의 file_wirte_complete, transaction_log 이벤트를 사용하여 트랜잭션이 커밋될 때 트랜잭션 로그 파일에 기록되는 것을 모니터링할 수 있다. 실습을 위해 테스트 테이블을 생성한다. CREATE TABLE TestTable ( c1 INT IDENTITY, c2 CHAR (1000) DEFAULT 'a'); GO INSERT INTO [TestTable] DEFAULT VALUES; GO XEvent를 설정한다. -- Drop the session if it exists. IF EXISTS ( SELECT * FROM sys.server_event_sess..

성능분석 10탄 – 쿼리 실행 대기 시간 분석(xevent)

성능분석 10탄 – 쿼리 실행 대기 시간 분석(xevent) Version : SQL Server 2005, 2008, 2008R2, 2012 쿼리 또는 저장프로시저에 대한 가장 좋은 대기 유형 정보는 실행 시간과 IO 정보이다. 이 정보는 확장이벤트(XEvent)를 사용하여 모니터링을 할 수 있다. 다음 스크립트는 Sqlos.wait_info 정보를 캡처하고 특정 실행 세션(SPID)에 대한 확장 이벤트 세션을 필터링하는 확장이벤트 세션 생성 작업이다. create event session session_waits on server add event sqlos.wait_info (WHERE sqlserver.session_id= 54/*execution_spid*/ and duration>0) , ad..

백업 확장이벤트로 백업 진행 과정과 소요되는 시간 확인

백업 확장이벤트로 백업 진행 과정과 소요되는 시간 확인 Version : SQL Server 2016 SQL Server 2016에서 추가된 새로운 확장 이벤트 sqlserver.backup_restore_progress_trace 를 사용하여 백업과정과 각 과정에서 소요되는 시간을 확인할 수 있다. 실습을 위해 확장이벤트를 생성한다. CREATE EVENT SESSION [Backup progress] ON SERVER ADD EVENT sqlserver.backup_restore_progress_trace ( ACTION(package0.event_sequence) -- to only capture backup operations: --WHERE [operation_type] = 0 -- to onl..