술어의 필터 인수는 술어가 참인 테이블에 있는 행의 비율을 추정하는 0과 1 사이의 숫자입니다. 예를 들어 DB2가 테이블 T의 C1 열이 5개의 고유 값 A, D, Q, W, X만 포함한다고 판별할 수 있다고 가정하십시오. 다른 정보가 없으면 DB2는 행의 5분의 1이 C1 열에 값 D를 갖는다고 추정합니다. 그러면 술어 C1='D'는 테이블 T에 대해 0.2의 필터 인수를 갖습니다.
DB2 옵티마이저는 참조되는 테이블에 대한 통계가 최신인 경우에도 항상 SQL문에 있는 술어 또는 술어 세트에 대한 정확한 필터 인수를 판별할 수 있는 것은 아닙니다. 결과는 옵티마이저가 최적보다 작은 액세스 플랜을 생성한다는 것입니다.
예를 들어 술어 WHERE T1.C1 > ?는 옵티마이저가 PREPARE 또는 BIND 구문 중에 정확한 필터 인수를 추정하도록 허용하지 않습니다. 즉, 막대 그래프 통계가 C1에서 수집된 경우에도 옵티마이저가 가능한 값을 알 수 없습니다.
선택 빈도 겹쳐쓰기 기능을 사용하면 옵티마이저가 필터 인수에 대해 추정하는 값을 더 정확한 값으로 바꾸기 위한 권장사항을 얻을 수 있습니다. 사용자 스스로 필터 인수의 값을 설정할 수도 있습니다.
SQL문의 필터 인수 세트가 선택 빈도 프로파일을 구성합니다. 선택 빈도 겹쳐쓰기 기능을 사용하여 선택 빈도 프로파일을 유효성 확인하고 오류가 없으면 이들을 배치할 수 있습니다.
권장사항을 승인하거나 사용자 스스로 설정하여 필터 인수를 겹쳐쓴 후, 잠재적 오류에 대해 필터 인수 세트를 검사할 수 있습니다. 그런 다음 현재 SQL문에 대한 새 액세스 플랜을 검토하고, 먼저 새 선택 빈도 프로파일을 배치하지 않고 원래 액세스 플랜과 비교할 수도 있습니다. 또한 명령문에 대해 인덱스 어드바이저를 실행할 수도 있습니다. 어드바이저는 새 액세스 플랜을 사용합니다. 그런 다음 어드바이저의 권장사항을 원래 액세스 플랜을 기반으로 제공한 권장사항과 비교할 수 있습니다.
필터 인수를 추가로 수정하려는 경우, 필터 인수를 수정하고 다시 유효성 검증하고 다시 테스트한 후 배치할 수 있습니다.