database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39688 게시물 읽기
No. 39688
tablespace 일별/시간별 총사용량 구하기 질문 ㅠ
작성자
DB초보사람(goodkiyo)
작성일
2012-10-16 14:03ⓒ
2012-10-16 15:51ⓜ
조회수
6,225

tablespace 질문 올립니다.. 일주일째 고민중인데 답이 안나오네요 ㅠ

총 tablespace(인덱스, 테이블 포함)를 지난 세달동안 매일 시간대별로 총사용량을

구하려고하는데요..

아무리 생각해봐도 도저히 답이 나오지 않아서 질문드립니다. 고수님들 부탁드립니다.... 

이것저것 자료도 찾아보고 사랑넷 고수님들 답변도 다 훓어보고 했는데..

제가 원하는 데이터가 나오질 않네요....ㅠㅠ

부탁드립니다.

제가 사랑넷 고수님들의 답변으로 고민한 쿼리입니다.. 수정만 하면될런지.... 어렵습니다..

 

SELECT sysdate                                         as base_date ,
       A.tablespace_name                               as tspace ,
      --ROUND(B.FRAG_INDEX,2)                           as fragindex ,
       allspc.KB                                       as totalaloc ,
       (A.fretot - B.total_free ) /1024                as totalused ,
       B.total_free /1024                              as totalfree ,
       ROUND((B.total_free /A.fretot),2) * 100         as frepct
      --B.max_hole /1024                                as maxdiv ,
      --ROUND((B.avg_hole /1024),2)                     as avgdiv ,
      --B.holes                                         as num_of_div
  FROM dual,
            ( SELECT tablespace_name     as tablespace_name ,
                     SUM(bytes)          as fretot
                FROM dba_data_files
               WHERE tablespace_name != 'TEMP'
            group by tablespace_name
            ) A,
            ( SELECT tablespace_name      as tablespace_name,
                     --SQRT(MAX(BLOCKS)/SUM(BLOCKS))*(100/SQRT(SQRT(COUNT(BLOCKS)) )) as FRAG_INDEX,
                     SUM(bytes)           as total_free
                     --MAX(bytes)           as max_hole,
                     --AVG(bytes)           as avg_hole,
                     --COUNT(*) holes
                FROM dba_free_space
               WHERE tablespace_name != 'TEMP'
            GROUP BY tablespace_name
           ) B,
           ( select table_space           as tablespace_name ,
                    sum(x)                as KB
               from
                   ( select tablespace_name       as table_space,
                            sum(BYTES/1024)       as x
                       from dba_data_files
                      where maxbytes=0
                        and tablespace_name != 'TEMP'
                   group by tablespace_name
                  union all
                     select tablespace_name       as table_space,
                            sum(MAXBYTES/1024)    as x
                       from dba_data_files
                      where tablespace_name != 'TEMP'
                   group by tablespace_name
                  ) group by table_space
           ) allspc
WHERE A.tablespace_name = B.tablespace_name(+)
  and A.tablespace_name = allspc.tablespace_name(+);

이 글에 대한 댓글이 총 1건 있습니다.

역시 cron등으로 걸어놓기전에는 알수가 없는거군요..

답변 진심으로 감사드립니다.

조언해주신 쿼리로 일주일정도의 내역은 찾았습니다.

만약 DB가 이 테이블내역을 백업한게있다면 원하는 자료를 만들어낼수도

있을거같습니다.

혹시 조언해주신 쿼리로는 일주일전부터만 조회가되는데

그 이전 RTIME 데이터도 조회가 가능할까요?

DB초보사람(goodkiyo)님이 2012-10-17 10:09에 작성한 댓글입니다.
이 댓글은 2012-10-17 10:38에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
39691pro [테이블명]; [1]
이경일
2012-10-18
4081
39690날짜 기간(일수) 구하는 쿼리 도움 부탁드립니다. [2]
Jacob
2012-10-18
5938
39689주 단위 누적치 계산 방법??? [4]
누적계산
2012-10-17
5745
39688tablespace 일별/시간별 총사용량 구하기 질문 ㅠ [1]
DB초보사람
2012-10-16
6225
39687ORA-01843 재질문 ㅠ.ㅠ [1]
해외
2012-10-13
5106
39686문자열을 분리해서 종으로 표시하고 싶습니다. [2]
이병국
2012-10-12
4859
39685[질문]해당 주에 시작과 끝 일자 구하기 [3]
물새
2012-10-12
6573
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다