SQL 프로필러를 사용 하 여 이벤트 중 클라이언트 쪽 추적 인스턴스에서 수행할 때 SQL Server 인스턴스가 느리게 수행

증상

다음 시나리오를 고려하십시오.
  • 컴퓨터에 Microsoft SQL Server 2005 또는 Microsoft SQL Server 2000의 인스턴스를 실행 해야 합니다.
  • SQL 프로필러를 사용 하 여 SQL Server 인스턴스에 있는 클라이언트 쪽 추적 이벤트의 수행 하려면.
  • SQL Server 인스턴스를 실행 중인 컴퓨터에서 SQL 프로필러를 실행 하거나 다른 컴퓨터에서 SQL 프로필러를 실행 합니다.
이 시나리오에서 SQL Server 인스턴스는 느리게 수행합니다.

이 문제가 발생 하면 SQL Server 인스턴스에서 master.dbo.sysprocesses 시스템 테이블을 쿼리 하는 경우 다음과 같은 현상이 나타날.
  • 여러 활성 서버 프로세스 Id (Spid) 유형 열에서 0x404 (LATCH_EX) 값을 표시 합니다.
  • 하나 이상의 Spid program_name 열에 SQL 프로필러 값을 표시 합니다.
또한 표시 대기 열에 다음 값 중 하나가 master.dbo.sysprocesses 시스템 테이블을 쿼리 하는 경우.
  • 기타 (16 진수 주소)
  • TRACE_CONTROLLER
  • TRACE_IO_SYNC
  • 추적
다음 조건에 해당 하는 경우 이러한 값 중 하나가 나타날.
  • SQL Server 2005 또는 SQL Server 2000 서비스 팩 4 (SP4)를 사용 합니다.
  • SQL 프로필러에서 동기화 추적 작업을 수행 하는 SPID를 기다리는 중입니다.

원인

SQL Server 2005 또는 SQL Server 2000의 인스턴스에 대해 SQL 프로필러를 실행 하는 경우 인스턴스의 각 활성 SPID는 배타 래치 (LATCH_EX) SQL 프로파일러에 이벤트를 쓸 수 있어야 합니다. SPID 기록 이벤트는 로컬 메모리 버퍼에 먼저. 그런 다음 SQL 프로필러 이벤트가 전송 됩니다. 로컬 메모리 버퍼가 꽉 차면 SPID 이벤트를 삭제 합니다. SQL 프로파일러는 로컬 메모리 버퍼의 이벤트를 전송한 SPID는 로컬 메모리 버퍼를 새 이벤트를 쓸 수 있습니다. 다른 Spid SQL 프로필러 이벤트에 쓰려고 대기 중인이 Spid를 큐에 대기 합니다.

SQL 프로필러는 SQL Server 프로세스와에서 별개인 프로세스 이기 때문에 SQL 프로필러를 전송 하는 각 이벤트 데 다소 시간이 걸립니다. 다른 컴퓨터에서 SQL 프로필러를 실행 하는 경우이 프로세스 시간이 오래 걸립니다. 네트워크 대기 시간으로 인해 및 SQL 프로필러를 실행 하는 컴퓨터의 성능 때문에이 프로세스 시간이 오래 걸립니다. 따라서 SQL Server 인스턴스를 느리게 수행합니다.

해결 방법

이 문제를 해결 하려면 SQL Server 인스턴스에 있는 클라이언트 쪽 추적 이벤트의 수행 하려면 SQL 프로필러를 사용 하지 마십시오. 대신, 이벤트의 서버쪽 추적을 수행 하려면 시스템 저장 프로시저를 사용 합니다.

다음과 같은 시스템 저장 프로시저를 사용할 수 있습니다.
  • sp_trace_create
  • sp_trace_setevent
  • sp_trace_setfilter
  • sp_trace_setstatus
이러한 시스템에 대 한 자세한 내용은 저장 프로시저를 SQL Server 2000 온라인 설명서에서 또는 SQL Server 2005 온라인 설명서의 저장된 프로시저에 대 한 검색 합니다.

상태

Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.

자세한 내용

추적 데이터 파일을 수집할 데이터 수집 PSSDIAG 유틸리티를 사용할 수 있습니다. 데이터 수집 PSSDIAG 유틸리티에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.:

PSSDIAG 데이터 컬렉션 유틸리티 830232

SQL Server 2000 및 SQL Server 2005의 유형 열에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.

SQL Server 2000 및 SQL Server 2005는 master.dbo.sysprocesses 테이블의 waittype 및 lastwaittype 열 822101 설명

속성

문서 ID: 929728 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백