일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- windows debugging tool
- 터키여행
- paged pool
- cluster node as Domain controller
- MSCS on VMWare
- nonpaged pool
- ftp7.5 장애조치 클러스터
- LiveKD
- 클러스터
- Xperf
- Session space
- Windows Server 2016
- windows update
- 안철수
- FTP7.5
- Nested VM
- Local TempDB
- failover cluster
- iSCSI target
- Windows Server 2016 Hyper-v Cluster
- 인문고전
- Hyper-V
- 작업관리자
- SQL Server 2012R2 FCI
- windows media service
- windbg
- dsquery
- Windows Server 2008
- SQL Server 2008
- 프로세스 CPU 사용량
- Today
- Total
류짱:Beyond MySelf
tempdb의 디스크 공간 본문
아래 글은 SQL 공부 중 도움말에서 퍼온 글입니다....
tempdb 시스템 데이터베이스는 SQL Server 인스턴스에 연결된 모든 사용자가 사용할 수 있는 전역 리소스입니다. tempdb 데이터베이스는 사용자 개체, 내부 개체 및 버전 저장소를 저장하는 데 사용합니다. SQL Server 2005서버는 tempdb에 이전 버전의 SQL Server보다 많은 디스크 공간이 필요합니다.
sys.dm_db_file_space_usage 동적 관리 뷰를 사용하여 tempdb 파일에서 사용자 개체, 내부 개체 및 버전 저장소에 사용되는 디스크 공간을 모니터링할 수 있습니다.
또한 sys.dm_db_session_space_usage 및 sys.dm_db_task_space_usage 동적 관리 뷰를 사용하면 세션이나 작업 수준에서 tempdb의 페이지 할당 또는 할당 취소 작업을 모니터링할 수 있습니다.
이러한 뷰를 사용하면 tempdb 디스크 공간을 많이 사용하는 큰 쿼리, 임시 테이블 또는 테이블 변수를 식별할 수 있습니다.
tempdb 디스크 공간 문제 진단
다음 표에는 tempdb 테이블의 디스크 공간 부족을 나타내는 오류 메시지가 나열됩니다. 이러한 오류는 SQL Server 오류 로그에서 확인할 수 있으며 실행 중인 응용 프로그램에 반환될 수도 있습니다.
오류 |
발생 조건 |
1101 또는 1105 |
세션에서 tempdb에 공간을 할당해야 하는 경우 |
3959 |
버전 저장소가 꽉 찬 경우. 이 오류는 일반적으로 로그에서 1105 또는 1101 오류 다음에 나타납니다. |
3967 |
tempdb가 꽉 차서 버전 저장소를 줄여야 하는 경우 |
3958 또는 3966 |
트랜잭션이 tempdb에서 필요한 버전 레코드를 찾을 수 없는 경우 |
tempdb 디스크 공간 문제는 또한 자동 증가로 설정된 데이터베이스에서 데이터베이스 크기가 빠르게 증가할 때에도 나타납니다.
[TempDB가 늘어나도록 하는 원인 정보 확인 쿼리]
DECLARE @FileName VARCHAR(MAX)
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'
FROM sys.traces
WHERE is_default = 1;
SELECT
gt.NTUserName,
gt.HostName,
gt.NTDomainName,
gt.LoginName,
gt.StartTime,
gt.EndTime,
gt.SPID
FROM sys.fn_trace_gettable( @FileName, DEFAULT ) AS gt
WHERE gt.DatabaseID = 2
AND gt.EventClass = 92
[해당 쿼리 명을 알고 싶으면]
dbcc inputbuffer(<spid>) 명령을 하시면 됩니다.
예) spid가 52인 경우
dbcc inputbuffer(52)
[참고 자료]
tempdb의 디스크 공간 부족 문제 해결
http://msdn.microsoft.com/ko-kr/library/ms176029(v=SQL.90).aspx