Oracle Database Admin/Oracle Database

Segment Size 조회(테이블/인덱스 사이즈 조회)

다소곳한 직장인 DBA 일생 기록 2025. 5. 25. 18:12

 

  • 세그먼트 조회 SQL문 정리

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
================================================================
- Segment Size Check
================================================================
 
-- Segment Size check
 
select owner,
       segment_name,
       round(sum(bytes)/1024/1024,3) as seg_mb
  from dba_segments
 where segment_name in ('SegmentName')
group by owner, segment_name
order by partition_name;
 
 
-- Segment Size Detail Check(Partition Table)
select owner,
       segment_name,
       partition_name,
       tablespace_name,
       round(sum(bytes)/1024/1024,3) as seg_mb
  from dba_segments
 where segment_name in ('SegmentName')
group by owner, segment_name,partition_name,tablespace_name
order by partition_name;
 
 
================================================================
- Index Size Check
================================================================
 
select s.owner,
       s.segment_name,
       round(sum(s.bytes)/1024/1024,3) as seg_mb
  from (
         select owner,
                index_name
           from dba_indexes
          where table_owner = 'TableOwner'
            and table_name = 'TableName'
       ) i, dba_segments s
 where i.owner = s.owner
   and i.index_name = s.segment_name
group by s.owner, s.segment_name
order by s.segment_name;
 
 
================================================================
- LOB Segment Size Check
================================================================
 
select owner,
       segment_name,
       round(sum(bytes)/1024/1024,3) as seg_mb
  from dba_segments
 where tablespace_name = 'TableSpaceName' --Lob Segment Tablespace
group by owner, segment_name
order by seg_mb desc;
 
select lp.table_owner,
       lp.table_name,
       lp.column_name,
       lp.lob_name,
       lp.partition_name,
       lp.lob_partition_name,
       --lp.lob_indpart_name,
       s.tablespace_name,
       round(s.bytes/1024/1024,3) as lob_seg_mb
  from dba_lobs l, dba_lob_partitions lp, dba_segments s
 where l.table_name = 'TableName'
   and l.owner = lp.table_owner
   and l.table_name = lp.table_name
   and l.column_name = lp.column_name
   and lp.table_owner = s.owner
   and lp.lob_name = s.segment_name
   and lp.lob_partition_name = s.partition_name
   --and lp.partition_name = 'PR_201709'
order by lp.table_owner, lp.table_name, lp.lob_name, lp.partition_name;
 
cs

 

반응형

'Oracle Database Admin > Oracle Database' 카테고리의 다른 글

ASM영역에 패스워드 파일  (0) 2025.06.02
DB Link SYS_HUB  (1) 2025.05.25
리스너(Listener)관리  (0) 2025.04.27
Session 파라미터 설정  (0) 2025.04.05
Oracle Active Data Guard 19c- ADG 구성  (0) 2025.03.31