관련 테이블에 대한 통계 수집을 시도하십시오. 이를 수행하는 가장 좋은 방법은 DBMS_STATS 패키지에서 루틴을 사용하는 것입니다. 가장 쉬운 방법은 DBMS_STATS.GATHER_DATABASE_STATS를 호출하여 매개 변수를 지정하지 않는 것입니다 (예 : 모든 매개 변수의 기본값 사용). 그러나 이것은 다소 시간이 걸릴 것입니다. 단일 테이블에 대한 통계를 수집하기 위해 DBMS_STATS.GATHER_TABLE_STATS를 사용할 수 있습니다. 'ownname'및 'tabname'매개 변수에 값을 제공해야합니다. 당신이 관심있는 테이블이 "MY_SCHEMA.MY_TABLE"라는 경우
DBMS_STATS.GATHER_TABLE_STATS('MY_SCHEMA', 'MY_TABLE');
이 루틴하지만 기본 값은 잘 작동합니다 다른 매개 변수가 같이 따라서, DBMS_STATS.GATHER_TABLE_STATS에 대한 호출이 보일 것이다.
데이터베이스가 여전히 원하는 테이블의 전체 테이블 스캔을 요구한다면 데이터베이스에 쿼리가 만족 스럽다고 느끼는 인덱스가 테이블에 없다는 것을 의미 할 수 있습니다. 쿼리 코드를 게시하고 문제가있는 테이블의 인덱스를 알려 주시면 추가 권장 사항을 제시 할 수 있습니다.
공유하고 즐기십시오.
코드가 질문에서 누락 된 것처럼 보입니다. 코드없이 답을 얻을 수 없습니다. – Lunc
아마 최적화 프로그램이 카디널리티를 고려할 때 좋은 선택을하고있을 것입니다. 테이블 내용에 대한 통계를 다시 계산하려 했습니까? 'dbms_stats.gather_schema_stats' 또는'gather_table_stats'를 사용하십시오. – Benoit