«cardinality-estimates» 태그된 질문

3
Parallelism (Repartition Streams) 연산자가 행 추정치를 1로 줄이는 이유는 무엇입니까?
SQL Server 2012 Enterprise를 사용하고 있습니다. 나는 완전히 직관적이지 않은 일부 행동을 나타내는 SQL 계획을 보았습니다. 병렬 병렬 색인 스캔 조작 후 병렬 처리 (복원 스트림) 조작이 발생하지만 색인 스캔 (Object10.Index2)에 의해 리턴되는 행 추정값을 종료하여 추정값을 1로 줄입니다. 이 동작을 설명하는 어떤 것도 발견하지 못했습니다. 각 테이블에는 수백만의 레코드가 …

2
DELETE 쿼리가 다른 형식보다 한 형식으로 실행되는 이유는 무엇입니까?
중복을 제거하려는 특정 정리 코드가 있습니다. 이것은 많은 고객 사이트에서 완벽하게 실행됩니다. 로그는이 쿼리에서 최소 1 초에서 최대 45 초를 소비한다고 알려줍니다. DELETE FROM [tbl] WHERE [Id] NOT IN ( SELECT MIN([Id]) FROM [tbl] GROUP BY [IdProject], [IdRepresentative], [TimeStart] ) 그러나이 쿼리가 4 시간 이상 (지금까지는 끝나지 않고) 실행되는 고객이 …

2
Int / Smallint가 Varchar로 암시 적으로 변환되는 이유는 무엇이며 카디널리티 예상치에 실제로 영향을 미칩니 까?
실제 실행 계획에서 SSMS (Show Plan Analysis)를 사용하여 성능이 느린 쿼리를 작성하는 데 문제가 있습니다. 분석 도구는 계획의 일부 위치에서 반환 된 결과에서 행 수에 대한 추정치가 벗어나고 암시 적 변환 경고를 제공한다고 지적합니다. 나는 int를 Varchar로 암시 적으로 변환하는 것을 이해하지 못합니다. 참조 된 필드는 쿼리의 매개 변수 / …

3
varchar (max)로 인해 tempdb에 정렬 유출
32GB의 서버에서 최대 메모리가 25GB 인 SQL Server 2014 SP2를 실행중인 경우 두 개의 테이블이 있습니다. 여기서 두 테이블의 단순화 된 구조를 찾을 수 있습니다. CREATE TABLE [dbo].[Settings]( [id] [int] IDENTITY(1,1) NOT NULL, [resourceId] [int] NULL, [typeID] [int] NULL, [remark] [varchar](max) NULL, CONSTRAINT [PK_Settings] PRIMARY KEY CLUSTERED ([id] ASC) ) …

1
식의 유형 변환은 쿼리 계획 선택의 "CardinalityEstimate"에 영향을 줄 수 있습니까?
히스토리 데이터를 파티션 된보기로 저장하는 아카이브 데이터베이스를 유지 보수합니다. 분할 열은 날짜 / 시간입니다. 보기 아래의 각 테이블은 한 달의 데이터를 저장합니다. datetime 열에 대한 점검 제한 조건으로 각 테이블의 이벤트를 제한합니다. 이를 통해 옵티마이 저는 이벤트 날짜 시간 컬럼에서 필터링하는 쿼리에 대해 검색되는 테이블을 제한 할 수 있습니다. 검사 …

1
마스터 / 디테일 테이블 간의 해시 조인으로 카디널리티 추정이 너무 낮습니다.
마스터 테이블을 세부 테이블에 조인 할 때 SQL Server 2014에서 더 큰 (자세한) 테이블의 카디널리티 예상을 조인 출력의 카디널리티 예상으로 사용하도록하려면 어떻게해야합니까? 예를 들어 10K 마스터 행을 100K 세부 정보 행에 조인 할 때 SQL Server가 예상 세부 정보 행 수와 같은 100K 행의 조인을 추정하려고합니다. 모든 세부 정보 행에 …

3
SQL Server에서 다 대다 조인을 암시하는 방법은 무엇입니까?
한 쌍의 열 (둘 다 int) 에 조인되는 3 개의 "큰"테이블이 있습니다. Table1에는 ~ 2 억 개의 행이 있습니다. Table2 ~ 150 만 행 Table3에는 ~ 600 만 개의 행이 있습니다. 각 테이블에는 클러스터 인덱스가 Key1, Key2다음, 하나 더 열을. Key1카디널리티가 낮고 매우 비뚤어집니다. 항상 WHERE조항 에서 참조됩니다 . 절 …

2
단계 내 통계 값의> = 및>에 대한 카디널리티 추정
SQL Server가 SQL Server 2014의 '보다 큼'및 '보다 큼'where 절을 평가하는 방법을 이해하려고합니다. 예를 들어 카디널리티 추정이 단계에 도달하면 이해합니다. select * from charge where charge_dt >= '1999-10-13 10:47:38.550' 카디널리티 추정은 6672이며 32 (EQ_ROWS) + 6624 (RANGE_ROWS) + 16 (EQ_ROWS) = 6672 (아래 스크린 샷의 히스토그램)로 쉽게 계산할 수 있습니다. …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.