Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

최적화된 비트맵 필터링은 어떻게 구현됩니까?

<시간/>

비트맵 필터는 선택적인 경우에만 유용합니다. 쿼리 최적화 프로그램은 최적화된 비트맵 필터가 도움이 될 만큼 선택적인 시기와 필터가 사용되는 연산자를 결정합니다. 옵티마이저 필드는 스타 조인의 모든 부서에서 최적화된 비트맵 필터를 사용하고 비용 계산 규칙을 ​​사용하여 계획이 가장 작은 예상 구현 비용을 지원하는지 여부를 결정합니다.

최적화된 비트맵 필터가 비선택적이면 일반적으로 예상 비용이 너무 높아 계획이 거부됩니다. 계획에서 최적화된 비트맵 필터를 찾을 위치를 고려할 때 해시 조인 변형에 대한 최적화 프로그램 보기에는 해시 조인의 오른쪽 깊은 스택이 포함됩니다. 차원 테이블과의 조인은 가능한 가장 선택적인 조인을 먼저 실행하도록 구현됩니다.

최적화된 비트맵 필터가 사용되는 연산자는 PROBE의 설계에 비트맵 술어를 포함합니다([Opt_Bitmap1001], {[column_name]} [, 'IN ROW']). 비트맵 술어는 다음 데이터에 대해 보고합니다.

  • Bitmap 연산자에 도입된 이름과 관련된 비트맵 이름입니다. 접두사 'Opt_'는 최적화된 비트맵 필터가 사용되었음을 나타냅니다.

  • 컬럼은 반대 방향으로 조사되었습니다. 필터링된 데이터가 트리를 통해 흐르는 용어입니다.

  • 비트맵 프로브에 행 내 최적화가 필요한지 여부. 그럴 때 IN ROW 매개변수를 사용하여 비트맵 프로브가 호출됩니다. 또는 이 매개변수가 누락되었습니다.

최적화된 비트맵 필터링 요구 사항

최적화된 비트맵 필터링에는 다음 요구 사항이 있습니다. -

  • 팩트 테이블은 최소 100페이지로 예상됩니다. 옵티마이저는 더 작은 테이블을 차원 테이블로 처리했습니다.

  • 팩트 테이블과 차원 테이블 사이에는 내부 조인만 고려됩니다.

  • 팩트 테이블과 차원 테이블 간의 조인 조건자는 단일 열 조인이어야 하지만 기본 키와 외래 키 관계일 필요는 없습니다. 정수 기반 열이 선택되었습니다.

  • 차원이 있는 조인은 차원 입력 카디널리티가 팩트 테이블의 입력 카디널리티보다 작은 경우에만 처리됩니다.

비트맵 필터링 및 최적화된 비트맵 필터링은 비트맵 표시 계획 연산자를 사용하여 쿼리 계획에서 실행됩니다. 비트맵 필터링은 해시 또는 병합 조인이 사용되는 병렬 쿼리 계획에서만 사용됩니다. 최적화된 비트맵 필터링은 해시 조인이 사용되는 병렬 쿼리 계획에만 관련됩니다.

두 경우 모두 해시 조인의 빌드 입력(차원 테이블) 측에서 비트맵 필터가 생성됩니다. 그러나 실제 필터링은 일반적으로 해시 조인의 프로브 입력(팩트 테이블) 쪽에 있는 병렬 처리 연산자 내에서 완료됩니다. 조인이 정수 열을 기반으로 하는 경우 병렬 처리 연산자 대신 필터를 원래 테이블 또는 인덱스 스캔 작업에 직접 사용할 수 있습니다. 이 기술을 행 내 최적화라고 합니다.