2009-12-27 4 views
0

난이 다음과 같은 의미로 상관 열 A 및 B와 함께 테이블 : 의미 =>SQL 서버 2008 멀티 컬럼 통계

A == 1 => B == 3 
A == 2 => B == 0 
A == 3 => B == 7 

높이와 의미 확률은입니다. 다음과 같이 쿼리하고 싶습니다.

where A = 2 and B = 3 --very few rows should match 

그래서 (A, B)에 대한 통계를 만들었습니다. 그러나 쿼리 최적화 프로그램은 행 계수를 10의 요소로 완전히 잘못 예측합니다. 그 이유는 무엇입니까? 관절 히스토그램은 매우 정확한 추정을 허용해야합니다. btw : 카디널리티 (A) = 10, 카디널리티 (B) = 5

+1

당신은,에서 아마 – gbn

+0

봐 좀 더 답변을 받아 들일 수 질문들. 나는 내 문제를 해결 한 모든 대답을 받아 들였다. 나는 단지 매우 어려운 질문을한다 .- – usr

답변

1

WHERE 절뿐 아니라 전체 쿼리가 중요하기 때문에 옵티 마이저가 통계를 무시하고있는 것으로 생각됩니다. 또는 SELECT *가 있습니다. 또는 샘플 속도가 너무 낮습니다 (FULLSCAN을 사용 했습니까?)

인덱스 통계가있는 인덱스를 만들면 어떻게됩니까? 내포물로도 덮을 수 있습니까?

그래픽 쿼리 플랜에서 언급하지 않은 한 내 자신의 컬럼 통계를 작성한 적이 없습니다. 내가 그들을 작성해야하는 경우, 인덱스는 더 나은 내 목적을 이룰 가능성이 높다

편집 :

+0

나는 FULLSCAN을 사용했다. 인덱스를 만든 후에는 예상치가 훨씬 좋아집니다. – usr

+0

내가 틀렸어. 전혀 나아지지 않았어! – usr

+0

쿼리가 인덱스로 완전히 덮여 있습니까? 인덱스에 FULLSCAN (재 구축 포함)? – gbn