QUERY를 작성하다보면 이 해당 테이블에는 총 몇 건의 레코드가 존재하는지 궁금할 경우가 있습니다.
궁금한 것을 넘어서 꼭 확인을 하고 넘어가야 좋은 SQL을 작성할 수 있다고 생각됩니다.
아래 통계정보를 이용하여 확인하는 방법을 공유하고자 합니다.
일반적으로 개발자분들한테는 DBA가 보는 통계정보는 공유가 안되는 사이트가 많습니다.
그래서 DBA가 보는 통계정보 대신에 해당 TABLE OWNER라면 확인 가능한 것을 알려드립니다.
ALL_TAB_STATISTICS 에서 같은 정보확인이 가능합니다.
SELECT OWNER
,TABLE_NAME
,NUM_ROWS /* 테이블에 저장된 총 레코드 개수 */
,BLOCKS /* 테이블 블록 수 (데이터가 한 건이라도 입력된 적 있는 모든 익스텐트)에
속한 총 블록 수 */
,AVG_ROW_LEN /* 레코드당 평균길이(BYTES */
,LAST_ANALYZED /* 통계정보 수집일시 */
FROM ALL_TABLES
WHERE TABLE_NAME = '테이블명'
;
여러 테이블을 조인하는 경우라면 IN으로 테이블명을 검색 후 ORDER BY NUM_ROWS 를 추가하면 테이블에 건수가 적은 것에서 큰 순으로 정렬되어 보이므로 테이블 연결에 참고할 수 있습니다.