추적 플래그(Transact-SQL)

업데이트: 2007년 9월 15일

추적 플래그는 특정 서버의 특성을 임시로 설정하거나 특정 동작을 중지시키는 데 사용합니다. 예를 들어 SQL Server 2005 인스턴스가 시작될 때 추적 플래그 3205가 설정되면 테이프 드라이버의 하드웨어 압축을 사용할 수 없습니다. 추적 플래그는 주로 성능 문제를 진단하거나 저장 프로시저 또는 복잡한 컴퓨터 시스템을 디버깅하는 데 사용됩니다.

다음 표에서는 SQL Server 2005에서 사용할 수 있는 추적 플래그와 그에 대한 설명을 보여 줍니다.

[!참고] SQL Server의 이후 릴리스에서는 추적 플래그 동작이 지원되지 않을 수도 있습니다.

추적 플래그 설명

260

확장 저장 프로시저 동적 연결 라이브러리(DLL)에 대한 버전 관리 정보를 인쇄합니다. __GetXpVersion()에 대한 자세한 내용은 Creating Extended Stored Procedures를 참조하십시오.

범위: 전역 또는 세션

1204

교착 상태에 있는 잠금의 유형과 리소스 및 현재 영향을 받은 명령을 반환합니다.

범위: 전역에만 해당

1211

메모리 가중이나 잠금 수를 기반으로 잠금 에스컬레이션을 해제합니다. SQL Server 2005 데이터베이스 엔진에서는 행 또는 페이지 잠금을 테이블 잠금으로 에스컬레이션하지 않습니다.

이 추적 플래그를 사용하면 과도하게 많은 잠금이 생성될 수 있습니다. 이로 인해 데이터베이스 엔진의 성능이 저하되거나 메모리가 부족하게 되어 잠금 리소스를 할당할 수 없는 1204 오류가 발생할 수 있습니다. 자세한 내용은 잠금 에스컬레이션(데이터베이스 엔진)을 참조하십시오.

추적 플래그 1211과 1224를 모두 설정하면 1211이 1224보다 우선 적용됩니다. 그러나 추적 플래그 1211은 메모리 부족 등의 모든 경우에서 에스컬레이션을 차단하므로 1224를 사용하는 것이 좋습니다. 이렇게 하면 많은 잠금을 사용할 때 "잠금" 오류를 방지하는 데 도움이 됩니다.

범위: 전역 또는 세션

1222

교착 상태에 있는 잠금 유형과 리소스 및 현재 영향을 받은 명령을 XSD 스키마에 맞지 않는 XML 형식으로 반환합니다.

범위: 전역에만 해당

1224

잠금 수를 기반으로 잠금 에스컬레이션을 해제합니다. 그러나 메모리 가중으로 잠금 에스컬레이션이 활성화될 수 있습니다. 데이터베이스 엔진은 잠금 개체에 사용되는 메모리 양이 다음 조건 중 하나를 초과하면 행 또는 페이지 잠금을 테이블 잠금으로 에스컬레이션합니다.

  • AWE(Address Windowing Extensions)를 사용한 메모리 할당을 제외하고 데이터베이스 엔진에 사용되는 메모리의 40%. sp_configurelocks 매개 변수가 0으로 설정된 경우에만 적용됩니다.
  • sp_configurelocks 매개 변수를 사용하여 구성된 잠금 메모리의 40%. 자세한 내용은 서버 구성 옵션 설정을 참조하십시오.

추적 플래그 1211과 1224를 모두 설정하면 1211이 1224보다 우선 적용됩니다. 그러나 추적 플래그 1211은 메모리 부족 등의 모든 경우에서 에스컬레이션을 차단하므로 1224를 사용하는 것이 좋습니다. 이렇게 하면 많은 잠금을 사용할 때 "잠금" 오류를 방지하는 데 도움이 됩니다.

범위: 전역 또는 세션

2528

DBCC CHECKDB, DBCC CHECKFILEGROUP 및 DBCC CHECKTABLE에 의한 개체 병렬 확인을 해제합니다. 기본적으로 쿼리 프로세서가 자동으로 병렬 처리 수준을 결정합니다. 최대 병렬 처리 수준은 병렬 쿼리의 경우처럼 구성됩니다. 자세한 내용은 max degree of parallelism 옵션을 참조하십시오.

일반적으로 병렬 DBCC는 사용 가능한 상태로 두어야 합니다. DBCC CHECKDB의 경우 쿼리 프로세서에서 병렬 처리를 다시 확인하고 확인된 각 테이블 또는 여러 테이블과 함께 자동으로 조정합니다. 서버가 거의 유휴 상태일 때 확인을 시작하는 경우도 있습니다. 관리자는 확인이 완료되기 전에 로드가 증가할 것을 알게 되면 수동으로 감소시키거나 병렬 처리를 해제해야 합니다.

단, 병렬 확인을 해제하면 전체 데이터베이스 성능이 저하될 수 있습니다. 병렬 처리 수준을 줄이면 검색해야 하는 트랜잭션 로그의 양은 늘어납니다. 한편으로, tempdb에 필요한 공간은 늘어나고 DBCC의 확인 완료에 필요한 시간은 비선형으로 늘어납니다. TABLOCK 기능이 설정되고 병렬 처리가 해제된 상태로 DBCC를 실행하면 테이블은 더 오랜 시간 동안 잠길 수 있습니다.

범위: 전역 또는 세션

3205

기본적으로 테이프 드라이브가 하드웨어 압축을 지원하면 DUMP 또는 BACKUP 문에서 하드웨어 압축을 사용합니다. 이 추적 플래그를 사용하면 테이프 드라이버에 대한 하드웨어 압축을 해제할 수 있습니다. 다른 사이트 또는 압축을 지원하지 않는 테이프 드라이브와 테이프를 교환할 때 유용합니다.

범위: 전역 또는 세션

3625

오류 메시지에 반환되는 정보를 제한합니다. 자세한 내용은 메타데이터 표시 유형 구성을 참조하십시오.

범위: 전역에만 해당

4616

응용 프로그램 역할이 서버 수준 메타데이터를 볼 수 있도록 합니다. SQL Server 2005에서 응용 프로그램 역할은 서버 수준의 보안 주체와 연결되어 있지 않으므로 해당 데이터베이스 외부의 메타데이터에 액세스할 수 없습니다. 이 동작은 이전 버전의 SQL Server에서 변경되었습니다. 이 전역 플래그를 설정하면 새 제한 사항이 해제되므로 응용 프로그램 역할이 서버 수준 메타데이터에 액세스할 수 있습니다.

범위: 전역에만 해당

7806

SQL Server Express에 DAC(관리자 전용 연결)를 설정합니다. 기본적으로 SQL Server Express에는 DAC 리소스가 예약되어 있지 않습니다. 자세한 내용은 전용 관리자 연결 사용을 참조하십시오.

범위: 전역에만 해당

주의

SQL Server 2005에는 세션 및 전역의 두 가지 추적 플래그 유형이 있습니다. 세션 추적 플래그는 특정 연결에 대해 설정되며 해당 연결에서만 볼 수 있습니다. 전역 추적 플래그는 서버 수준에서 설정되며 서버의 모든 연결에서 볼 수 있습니다. 전역으로만 설정할 수 있는 플래그도 있고 전역 또는 세션 범위에서 설정할 수 있는 플래그도 있습니다.

다음 규칙이 적용됩니다.

  • 전역 추적 플래그는 전역으로 설정해야 합니다. 그렇지 않으면 추적 플래그가 적용되지 않습니다. 시작 시 -T 명령줄 옵션을 사용하여 전역 추적 플래그를 설정하는 것이 좋습니다.
  • 추적 플래그의 범위가 전역 또는 세션이면 해당 범위로 추적 플래그를 설정할 수 있습니다. 세션 수준에서 설정된 추적 플래그는 다른 세션에 영향을 주지 않으며 해당 세션을 연 SPID가 로그아웃하면 추적 플래그의 효과가 사라집니다.

다음 방법 중 하나를 사용하여 추적 플래그를 설정하거나 해제합니다.

  • DBCC TRACEON 및 DBCC TRACEOFF 명령을 사용합니다.
    예를 들어 DBCC TRACEON 2528의 경우 추적 플래그를 전역으로 설정하려면 DBCC TRACEON 2528, -1과 같이 DBCC TRACEON에 -1 인수를 사용합니다. 전역 추적 플래그를 해제하려면 DBCC TRACEOFF에 -1 인수를 사용합니다.
  • -T 시작 옵션을 사용하여 시작하는 동안 추적 플래그가 설정되도록 지정합니다.
    -T 시작 옵션을 사용하면 추적 플래그가 전역으로 설정됩니다. 시작 옵션을 사용하여 세션 수준 추적 플래그를 설정할 수는 없습니다. 시작 옵션에 대한 자세한 내용은 SQL Server 서비스 시작 옵션 사용을 참조하십시오.

DBCC TRACESTATUS 명령을 사용하여 현재 활성화되어 있는 추적 플래그를 확인할 수 있습니다.

동작 변경

SQL Server 2000에서는 간단한 DBCC TRACEON(1204)만으로 오류 로그에 교착 상태 보고를 설정할 수 있습니다. SQL Server 2005에서는 교착 상태 모니터 스레드에서 세션 수준 플래그를 볼 수 없기 때문에 플래그를 전역으로 설정해야 합니다.

동작 변경에 대한 자세한 내용은 SQL Server 2005 데이터베이스 엔진 기능의 변경 내용 분석을 참조하십시오.

다음 예에서는 DBCC TRACEON을 사용하여 추적 플래그 3205를 설정합니다.

DBCC TRACEON (3205,-1)

참고 항목

참조

데이터 형식(Transact-SQL)
DBCC INPUTBUFFER(Transact-SQL)
DBCC OUTPUTBUFFER(Transact-SQL)
DBCC TRACEOFF(Transact-SQL)
DBCC TRACEON(Transact-SQL)
DBCC TRACESTATUS(Transact-SQL)
EXECUTE(Transact-SQL)
SELECT(Transact-SQL)
SET NOCOUNT(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2007년 9월 15일

변경된 내용
  • 추적 플래그 1224에 대한 범위 정보를 수정했습니다.

2006년 4월 14일

새로운 내용
  • 추적 플래그 7806에 대한 설명을 추가했습니다.
  • 추적 플래그 1224가 1211보다 우선 적용된다는 정보를 추가했습니다.
  • 각 추적 플래그에 대한 범위 정보를 추가했습니다.
  • 동작 변경을 추가했습니다.

2005년 12월 5일

새로운 내용
  • 추적 플래그 4616 및 3625에 대한 설명을 추가했습니다.