문제

데이터베이스 튜닝 어드바이저는 데이터베이스에 통계를 생성하는 것이 좋습니다. 나는 SQL N00B의 것이므로, 이것이 처음으로 그런 생물을 만난 적이 있습니다. MSDN의 항목은 약간 둔한 것이 었습니다. 누군가 이것이 정확히 무엇을하는지, 왜 좋은 생각인지 설명 할 수 있습니까?

도움이 되었습니까?

해결책

비용 기반 쿼리 최적화 히스토그램과 행 카운트를 사용하여 쿼리 계획을 실행하는 비용을 휴식적으로 추정하는 기술입니다. 쿼리를 SQL Server에 제출하면이를 평가하고 일련의 쿼리 계획 이를 위해 휴리스틱을 사용하여 비용을 추정합니다. 그런 다음 가장 저렴한 쿼리 계획을 선택합니다.

통계는 쿼리 최적화기가 쿼리 계획의 비용을 계산하는 데 사용됩니다. 통계가 없거나 날짜가 없으면 계획을 추정하기위한 정확한 데이터가 없습니다. 이 경우 적당히 또는 차선책 인 쿼리 계획을 생성 할 수 있습니다.

SQL Server는 (대부분의 상황에서) 대부분의 테이블과 인덱스에 대한 통계를 자동으로 생성하지만 이들을 보충하거나 강제로 새로 고침 할 수 있습니다. 쿼리 튜닝 마법사는 아마도 통계가 추가되어야한다는 쿼리 내에서 누락 된 통계 또는 식별 된 조인을 발견했을 것입니다.

다른 팁

통계는 최적화에 의해 쿼리에 특정 인덱스를 사용할지 여부를 결정하는 데 사용됩니다. 통계가 없으면 Optimizer는 주어진 조건과 일치하는 행의 수에 대해 알 수있는 방법이 없으므로 "많은 행"케이스를 최적화해야합니다.

간단히 말해서 데이터베이스가 효과적으로 작동하도록 준비합니다. 통계를 준비함으로써 데이터베이스는 가장 효율적인 경로가 무엇인지 (실행 계획을 파악하기 전에) 알고 있습니다.

기본적으로 SQL은 어떤 유형의 인덱싱, 행 계산 등으로 업데이트됩니다. 이는 SQL이 쿼리를 실행하는 방법을 더 잘 추정하는 데 도움이됩니다. 통계를 업데이트하는 것이 좋습니다.

볼에서 ...

제공된 열 또는 테이블 또는 인덱스 뷰의 열에 히스토그램 및 관련 밀도 그룹 (컬렉션)을 만듭니다. 문자열 요약 통계는 또한 Char, Varchar, Varchar (Max), NCHAR, NVARCHAR, NVARCHAR (MAX), 텍스트 및 NTEXT 열을 구축 한 통계에 대해서도 생성됩니다. Query Optimizer는이 통계 정보를 사용하여 데이터 검색 또는 업데이트를위한 가장 효율적인 계획을 선택합니다. 최신 통계를 통해 Optimizer는 다양한 쿼리 계획의 비용을 정확하게 평가하고 고품질 계획을 선택할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top