SQL Server에서 통계의 기본 샘플 크기는 얼마입니까?


12

에서 MSDN :

샘플 옵션 (SAMPLE, FULLSCAN, RESAMPLE)을 지정 하지 않으면 쿼리 옵티마이 저는 기본적으로 데이터를 샘플링하고 샘플 크기를 계산합니다.

통계의 기본 표본 크기를 식별하는 방법은 무엇입니까?

MSDN을 살펴 보았지만 기본 샘플 크기를 식별하는 수식이나 방법을 찾지 못했습니다. 어디에나 자동 통계 업데이트를 트리거하는 공식 만 있습니다. 모든 조언이 도움이 될 것입니다.

답변:


20

통계의 기본 표본 크기를 식별하는 방법은 무엇입니까?

나는 Blogs.msdn 기사 에서 인용 할 것이다

자동 업데이트 통계 알고리즘 :

따라서 자동 업데이트 통계는 테이블 행에서 500 + 20 % 변경 될 때마다 실행됩니다. 물론 SQL 2012에는 SQRT (1000 * Table rows) 인 알고리즘이 훨씬 향상되었습니다.

발사되면 기본 샘플링 속도를 사용하며 샘플링 속도를 계산하는 알고리즘은 다음과 같습니다.

1) 표가 8MB 미만이면 전체 스캔으로 통계를 업데이트합니다.

2) 표가 8MB보다 크면 알고리즘을 따릅니다. 너무 많은 데이터를 스캔하지 않도록 테이블의 행 수가 증가함에 따라 샘플링 속도가 줄어 듭니다. 이것은 고정 된 값은 아니지만 옵티마이 저의 제어를받습니다. 선형 알고리즘도 아닙니다.

예 : 1,000,000 개의 행이 있으면 샘플링 속도는 30 %를 사용하지만 행 수가 8,000,000으로 증가하면 샘플링 속도는 10 %로 줄어 듭니다. 이러한 샘플링 속도는 DBA 제어하에 있지 않지만 옵티마이 저가 결정합니다.

더 이해하려면 나는 당신이 읽는 것이 좋습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.