말랑말랑제리스타일

[Oracle] 테이블 Row 수 및 사이즈로 정렬하기 본문

데이터베이스/Oracle SQL

[Oracle] 테이블 Row 수 및 사이즈로 정렬하기

제리제리 2022. 1. 3. 11:50

Oracle 테이블을 정리하다보면 Row 수 또는 사이즈로 정렬해서

테이블 정리의 우선순위를 뽑아볼 수 있을 것 같은데요

일일이 Count(*)로 테이블 Row 수를 조회하면 속도가 느리고 한참 기다려야 하죠

그런 상황 대신 한번에 전체 테이블을 Row 수로 정렬해서 뽑아볼 수 있는 쿼리 전달합니다

SELECT TABLE_NAME,NUM_ROWS FROM USER_TABLES ORDER BY NUM_ROWS DESC;

 이건데요 이렇게 조회하면 해당 유저의 전체 테이블과 Row 수를 뽑아볼 수 있습니다

그럼 Row 수가 많다고 단순히 큰 테이블일까요?

아니죠 Column 수도 생각해야되고 확장 관련된 요소도 테이블 사이즈에 영향을 미치는데요

그런 상황을 다 고려해서 실제 테이블의 크기 순으로 뽑아볼 수 있는 쿼리도 있습니다

바로 USER_SEGMENTS 테이블을 조회하는건데요

SELECT SEGMENT_NAME, BYTES FROM USER_segments WHERE SEGMENT_TYPE = 'TABLE' ORDER BY BYTES DESC;

보면 딱 알겠지만 USER_SEGMENTS 테이블에서는 테이블 뿐만 아니라 Index 등도 사이즈 별로 뽑아볼 수 있고

Oracle 테이블 정리시 유용한 쿼리일 것 같네요

반응형
Comments