안녕하세요.
오라클만 사용해왔습니다.
그런데 이번에 인포믹스에서 아래정보를 추출해야 돼서 급하게 문의드립니다.
-- 아래 --
테이블명, 건수, 사이즈
※ 건수는 직접 count 하는 것이 아니라, 통계정보에서 추출할 수 있는 방법이 있을런지 궁금합니다.
비슷한 유형의 질문을 찾아보았지만, 찾지를 못해서 글을 올리게 되었습니다.
도움 부탁드립니다.
1. 테이블명 보기
해당 DB에 연결하여
SELECT tabname FROM systables WHERE tabid>99 AND tabtype='T';
tabtype='T' 를 주는 것은 실 테이블만을 보기 위함입니다.
뷰나 임시테이블까지 보고싶다면 빼시면 됩니다.
2. 건수 보기
SELECT nrows FROM systables WHERE tabname='테이블명';
통계정보 기준입니다. 갱신이 되지 않았다면 count(*) 와는 건수 차이가 발생합니다.
3. 사이즈 보기
SELECT tabname, sum(size) FROM sysmaster:sysextents WHERE tabname='테이블명' GROUP BY tabname;
할당된 extent 의 사이즈의 총 합입니다.
이것이DB에서 사용중인 사이즈이며, (extent 단위로 할당해서 사용하므로)
데이터를 텍스트 파일로 언로드 했을때의 실제 사이즈를 알고 싶으시면
SELECT tabname, nrows*rowsize FROM systables WHERE tabname='테이블명';
systables 라는 카달로그 테이블을 보시면 원하는 정보를 대부분 찾으실 수 있겠네요.
감사합니다.