«database-internals» 태그된 질문

데이터베이스 엔진의 내부 작업에 대한 기술적 인 질문이 있습니다.

4
SET 연산에 참여할 수있는 최대 로컬 변수 수는 얼마입니까?
비즈니스 논리가 포함 된 저장 프로 시저가 있습니다. 내부에는 약 1609 개의 변수가 있습니다 (이것이 엔진 작동 방식을 묻지 마십시오). SET변수를 다른 모든 변수의 연결된 값으로 시도 합니다. 결과적으로 생성 중에 오류가 발생합니다. 메시지 8631, 수준 17, 상태 1, 절차 XXX, 줄 YYY 내부 오류 : 서버 스택 제한에 도달했습니다. …

2
sys.allocation_units의 테이블 크기와 일치하지 않는 DATALENGTH의 합
DATALENGTH()테이블의 모든 레코드에 대한 모든 필드의 합계를 합하면 테이블의 전체 크기를 얻는다 는 인상을 받았습니다 . 내가 착각 했니? SELECT SUM(DATALENGTH(Field1)) + SUM(DATALENGTH(Field2)) + SUM(DATALENGTH(Field3)) TotalSizeInBytes FROM SomeTable WHERE X, Y, and Z are true 데이터베이스에서 특정 테이블의 크기를 얻기 위해 아래 쿼리 (온라인에서 가져온 테이블 크기, 클러스터 된 인덱스 …

1
높은 PAGELATCH_ * 및 WRITELOG가 대기합니다. 그들은 관련이 있습니까?
높은 WRITELOG 대기와 함께 매우 높은 PAGELATCH_EX 및 PAGELATCH_SH 대기 유형을보고 있습니다. PAGELATCH 대기를 유발하는 쿼리를 진단했으며 IDENTITY 값으로 정의 된 사용중인 클러스터 된 기본 키로의 삽입 속도를 줄임으로써 제거 할 수 있습니다. 이 현상을 마지막 페이지 삽입 래치 경합이라고합니다. 그러나 내 질문은 새 레코드가 삽입 될 때 SQL Server가 …

2
클러스터형 인덱스를 비활성화하면 왜 테이블에 액세스 할 수 없습니까?
인덱스가 비활성화되면 정의는 시스템 카탈로그에 남아 있지만 더 이상 사용되지 않습니다. SQL Server는 테이블의 데이터가 변경 될 때 인덱스를 유지 관리하지 않으며 쿼리를 만족시키기 위해 인덱스를 사용할 수 없습니다. 경우 클러스터 된 인덱스가 비활성화되어 전체 테이블에 액세스 할 수 없게됩니다. B- 트리를 버리고 테이블에서 직접 데이터에 액세스 할 수없는 이유는 …


3
SQL Server는 버퍼 캐시에 공간이 충분하지 않은 쿼리의 데이터를 어떻게 처리합니까?
내 질문은 SQL Server가 사용 가능한 공간보다 많은 양의 데이터를 버퍼 캐시로 가져와야하는 쿼리를 어떻게 처리합니까? 이 쿼리에는 여러 개의 조인이 포함되므로 결과 집합이 디스크에 이미이 형식으로 존재하지 않으므로 결과를 컴파일해야합니다. 그러나 컴파일 후에도 여전히 버퍼 캐시에서 사용할 수있는 것보다 더 많은 공간이 필요합니다. 예를 들어 보겠습니다. 사용 가능한 총 …

1
임시 테이블로 데이터를로드 할 때 최소한의 로깅 가져 오기
Data Loading Performance Guide를 읽은 후에도 최소한의 로깅을 얻기 위해 TABLOCK 테이블 힌트를 빈 임시 테이블에 추가하고 클러스터 된 인덱스로 정의해야하는지 확실하지 않습니다. 분명히 temp 테이블은 SIMPLE 복구 모드에서 작동하는 TempDB에서 만들어 지므로 최소한의 로깅을위한 완벽한 후보라고 생각했을 것입니다. 그러나 확인을위한 구절을 찾을 수는 없습니다. 임시 테이블은 최소한의 로깅 후보이며, …

1
측정 계획 제거
최대 메모리가 24GB로 설정된 SQL Server 2016 SP1이 있습니다. 이 서버에는 많은 수의 컴파일이 있으며이 컴파일 중 10 %만이 Ad-Hoc 쿼리에서 발생합니다. 따라서 새로 컴파일 된 계획은 계획 캐시에 저장해야하지만 계획 캐시의 크기는 증가하지 않습니다 (약 3.72GB). 캐시에서 계획을 제거하는 로컬 메모리 부족이 의심됩니다. 계획 캐시 압력 한계는 5GB입니다. (0-4GB에서 …

1
인덱스 탐색 운영자 비용
의 경우 에서는 AdventureWorks 샘플 데이터베이스 쿼리 아래 : SELECT P.ProductID, CA.TransactionID FROM Production.Product AS P CROSS APPLY ( SELECT TOP (1) TH.TransactionID FROM Production.TransactionHistory AS TH WHERE TH.ProductID = P.ProductID ORDER BY TH.TransactionID DESC ) AS CA; 실행 계획 쇼는 예상 연산자 비용 의 0.0850383 을 위해 (93 %) …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.