SQLSERVER 의 어떤 조회 가 얼마나 많은 TempDB 공간 을 사 용 했 는 지 어떻게 봅 니까?
내부 사용(정렬,hash join,work table 등)
외부 사용(임시 표,표 변수 등)
행 버 전 관리(낙관적 병행 제어)
한편,내부 사용 에 있어 일부 복잡 한 조회 에서 대량의 병행,정렬 등 작업 과 관련 되 기 때문에 대량의 메모리 공간 이 필요 하 다.모든 조 회 는 시작 할 때 SQL Server 가 얼마나 많은 메모리 가 필요 한 지 예측 하고 구체 적 인 실행 과정 에서 주어진 메모리 가 부족 하면 더 많은 부분 을 TempDB 로 처리 해 야 한다.이른바 Spill to TempDB 다.
다음 문 구 를 통 해 어떤 조회 가 TempDB 에 얼마나 많은 읽 기와 쓰 기 를 가 져 왔 는 지 관찰 할 수 있다.
DECLARE @read BIGINT,
@write BIGINT
;
SELECT @read = SUM(num_of_bytes_read),
@write = SUM(num_of_bytes_written)
FROM tempdb.sys.database_files AS DBF
JOIN sys.dm_io_virtual_file_stats(2, NULL) AS FS
ON FS.file_id = DBF.file_id
WHERE DBF.type_desc = 'ROWS'
--
SELECT tempdb_read_MB = (SUM(num_of_bytes_read) - @read) / 1024. / 1024.,
tempdb_write_MB = (SUM(num_of_bytes_written) - @write) / 1024. / 1024.,
internal_use_MB =
(
SELECT internal_objects_alloc_page_count / 128.0
FROM sys.dm_db_task_space_usage
WHERE session_id = @@SPID
)
FROM tempdb.sys.database_files AS DBF
JOIN sys.dm_io_virtual_file_stats(2, NULL) AS FS
ON FS.file_id = DBF.file_id
WHERE DBF.type_desc = 'ROWS'
최근 한 고객 에 게 서 본 엉터리 조회 로 인 한 TempDB 사용 결 과 는 다음 과 같다.이 검색 어 를 사용 하면 어떤 문구 가 TempDB 를 얼마나 사 용 했 는 지 알 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깊이 중첩된 객체를 정확히 일치 검색 - PostgreSQL목차 * 🚀 * 🎯 * 🏁 * 🙏 JSON 객체 예시 따라서 우리의 현재 목표는 "고용주"사용자가 입력한 검색어(이 경우에는 '요리')를 얻고 이 용어와 정확히 일치하는 모든 사용자 프로필을 찾는 것입니다. 즐거운 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.