전체 테이블 스캐닝 방지

조회 API(Application Programming Interface)를 사용하여 데이터베이스의 오브젝트를 나열하는 경우, 필터를 지정하여 검색 결과 범위를 좁힐 수 있습니다. 이 필터에 오브젝트 속성 값과 범위를 지정할 수 있습니다.

데이터베이스 조회가 처리될 때 필터 정보가 SQL(Structured Query Language) 문의 WHERE 절로 변환됩니다. 이 WHERE 절은 오브젝트 속성을 영향받는 데이터베이스 테이블의 열 이름에 맵핑합니다.

조회에서 색인화된 테이블 열로 변환되지 않는 필터를 지정하는 경우, SQL 문으로 인해 테이블 스캔이 발생할 가능성이 높습니다. 스캐닝은 성능을 저하시키고 교착 상태에 빠질 위험이 증가합니다. 스캐닝이 하루에 몇 번만 발생하는 경우에는 성능에 미치는 영향을 감수할 수 있지만 1분에 여러 번 발생할 경우에는 효율성을 저하시킬 수 있습니다.

이런 경우, 사용자 정의 색인이 영향을 대폭 줄일 수 있습니다. 실제 고객 환경에서 사용자 정의 색인은 API 응답 시간을 25초에서 300밀리초로 줄이는 데 도움이 되었습니다. 724000개의 데이터베이스 테이블 행을 읽는 대신 6개의 행만 읽으면 되었습니다.

사용자가 지정하는 필터 기준에 따라 일부 열이 색인에 포함되지 않을 수도 있습니다. 이런 경우에 해당하고 테이블 스캔이 사용되어 조회 성능이 저하되는 경우, 예를 들어 DB2® Explain을 사용하여 명령문의 액세스 경로를 확인하십시오. 필요하면 새 색인을 정의하십시오.


ⓒ Copyright IBM Corporation 2005, 2006.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)