본문 바로가기
Oracle/운영

[통계정보 export/import]다른 테이블에 통계정보 복사

by 취미툰 2023. 12. 14.
반응형

운영중에 원본테이블을 두고 CTAS 등으로 새로운 테이블을 만들어서 작업을 해야할 때가있습니다. 저의 경우에는 임시테이블에 작업 후에 원본과 RENAME하여 원본테이블과 바꿔치기하는 작업까지 해야했는데, 이때 크기가 큰 테이블의 경우에는 통계정보 수집시에 시간이 오래걸리고, 기존 원본 테이블에는 통계정보가 있는 경우, 통계정보의 export/import 기능을 사용하여 통계정보의 복사가 가능합니다.

이름이 다른경우에는 import를 하더라도 통계정보가 이식되지 않고 , 통계정보를 export받은 테이블을 update로 이름을 바꿔줘야 됩니다.

 

참고한 자료로는 아래의 SR입니다. 아래 SR은 스키마까지 변경될 때를 나타내었지만 저는 동일스키마로 진행하였습니다. 2701368.1.How To Transfer Statistics To Different Schemas and Tables and Indexes and Partition and Columns

 

시나리오를 통해 정리하겠습니다.

시나리오.

1.원본 테이블(Range Partition)테이블의 임시테이블(Range Partition) 생성

2.테이블들의 통계정보 확인

3.원본테이블의 통계정보 export

4.export 받은 통계정보 수정(update)

5.임시테이블에 통계정보 import

6. 테이블들의 통계정보 확인

 

1.원본 테이블(Range Partition)테이블의 임시테이블(Range Partition) 생성

원본테이블_IMSI로 임시의 파티션테이블을 생성합니다. 이때 원본테이블과 다르게 컬럼이 추가되었다는 설정으로 3개의 컬럼을 추가합니다.

INDEX와 PK는 모두 원본테이블과 동일한 구조로 생성합니다.

CREATE TABLE DEV.ORD_RANGE_IMSI
(
    ORD_NO              NUMBER(10) NOT NULL,
    ORD_YM              VARCHAR2(6) NOT NULL,
    ORD_DT              VARCHAR2(8),
    ORD_HMS             VARCHAR2(6),
    SHOP_NO             VARCHAR2(10),
    UPPER2              VARCHAR2(2),
    UPPER_CASE          VARCHAR2(10),
    LOWER_CASE          VARCHAR2(10),
    ALPHABET            VARCHAR2(400),
    ALPHABET_NUMERIC    VARCHAR2(400),
    ADD_COL             NUMBER(10), ---원본과 다르게 추가된 컬럼
    ADD_COL2            VARCHAR2(10), ---원본과 다르게 추가된 컬럼
    ADD_COL3            VARCHAR2(100) ---원본과 다르게 추가된 컬럼
)
TABLESPACE MY_DATA
NOLOGGING
PARTITION BY RANGE (ORD_YM)
(
    PARTITION P201201 VALUES LESS THAN ('201202'),
    PARTITION P201202 VALUES LESS THAN ('201203'),
    PARTITION P201203 VALUES LESS THAN ('201204'),
    PARTITION P201204 VALUES LESS THAN ('201205'),
    PARTITION P201205 VALUES LESS THAN ('201206'),
    PARTITION P201206 VALUES LESS THAN ('201207'),
    PARTITION P201207 VALUES LESS THAN ('201208'),
    PARTITION P201208 VALUES LESS THAN ('201209'),
    PARTITION P201209 VALUES LESS THAN ('201210'),
    PARTITION P201210 VALUES LESS THAN ('201211'),
    PARTITION P201211 VALUES LESS THAN ('201212'),
    PARTITION P201212 VALUES LESS THAN ('201213'),
    PARTITION P201301 VALUES LESS THAN ('201302'),
    PARTITION P201302 VALUES LESS THAN ('201303'),
    PARTITION P201303 VALUES LESS THAN ('201304'),
    PARTITION P201304 VALUES LESS THAN ('201305'),
    PARTITION P201305 VALUES LESS THAN ('201306'),
    PARTITION P201306 VALUES LESS THAN ('201307'),
    PARTITION P201307 VALUES LESS THAN ('201308'),
    PARTITION P201308 VALUES LESS THAN ('201309'),
    PARTITION P201309 VALUES LESS THAN ('201310'),
    PARTITION P201310 VALUES LESS THAN ('201311'),
    PARTITION P201311 VALUES LESS THAN ('201312'),
    PARTITION P201312 VALUES LESS THAN ('201313'),
    PARTITION P_DEFAULT VALUES LESS THAN (MAXVALUE)
);

CREATE UNIQUE INDEX DEV.ORD_RANGE_IMSI_PK
ON DEV.ORD_RANGE_IMSI (ORD_NO,ORD_YM) 
LOCAL;

CREATE INDEX DEV.ORD_RANGE_IMSI_X01
ON DEV.ORD_RANGE_IMSI (ORD_DT,ORD_HMS) 
LOCAL;

CREATE INDEX DEV.ORD_RANGE_IMSI_X02
ON DEV.ORD_RANGE_IMSI (SHOP_NO,UPPER2) 
TABLESPACE MY_DATA;

ALTER TABLE DEV.ORD_RANGE_IMSI
ADD CONSTRAINT ORD_RANGE_IMSI_PK PRIMARY KEY (ORD_NO,ORD_YM);

 

2.테이블들의 통계정보 확인

 

테이블의 통계정보를 확인결과 새로 생성한 임시테이블에는 null로 값이 없습니다.

SQL> select table_name,partition_name,NUM_ROWS,BLOCKS,AVG_ROW_LEN,LAST_ANALYZED From dba_tab_partitions where table_name in ('ORD_RANGE','ORD_RANGE_IMSI')
order by 1;

TABLE_NAME           PARTITION_NAME     NUM_ROWS  BLOCKS    AVG_ROW_LEN LAST_ANALYZED        
-------------------- ------------------ --------- --------- ----------- -------------------- 
ORD_RANGE            P201210               624770     14676         162 2023/07/06 22:05:20 
ORD_RANGE            P201209               623608     14649         162 2023/07/06 22:05:13 
ORD_RANGE            P201212               626477     14716         162 2023/07/06 22:05:34 
ORD_RANGE            P201301               624595     14672         162 2023/07/06 22:05:41 
ORD_RANGE            P201302               624556     14671         162 2023/07/06 22:05:48 
ORD_RANGE            P201303               626941     14727         162 2023/07/06 22:05:54 
ORD_RANGE            P201304               625107     14684         162 2023/07/06 22:06:01 
ORD_RANGE            P201305               625046     14682         162 2023/07/06 22:06:08 
ORD_RANGE            P201306               626169     14709         162 2023/07/06 22:06:14 
ORD_RANGE            P201307               625381     14690         162 2023/07/06 22:06:21 
ORD_RANGE            P201308               625043     14682         162 2023/07/06 22:06:28 
ORD_RANGE            P201309               624483     14669         162 2023/07/06 22:06:35 
ORD_RANGE            P201310               626386     14714         162 2023/07/06 22:06:42 
ORD_RANGE            P201311               624018     14659         162 2023/07/06 22:06:48 
ORD_RANGE            P201312               624828     14677         162 2023/07/06 22:06:55 
ORD_RANGE            P_DEFAULT                                                              
ORD_RANGE            P201211               625167     14685         162 2023/07/06 22:05:27 
ORD_RANGE            P201208               623940     12849         162 2023/07/06 22:04:50 
ORD_RANGE            P201207               624361     12850         162 2023/07/06 22:04:44 
ORD_RANGE            P201206               624187     12824         162 2023/07/06 22:04:37 
ORD_RANGE            P201205               624403     14673         162 2023/07/06 22:07:02 
ORD_RANGE            P201204               624633     12832         162 2023/11/24 22:07:43 
ORD_RANGE            P201203               625150     14688         162 2023/11/24 22:07:49 
ORD_RANGE            P201202               625594     14704         161 2023/11/24 22:07:52 
ORD_RANGE            P201201               625157     14688         161 2023/11/24 22:07:46 
ORD_RANGE_IMSI       P201210                                                                
ORD_RANGE_IMSI       P201201                                                                
ORD_RANGE_IMSI       P201212                                                                
ORD_RANGE_IMSI       P201301                                                                
ORD_RANGE_IMSI       P201302                                                                
ORD_RANGE_IMSI       P201303                                                                
ORD_RANGE_IMSI       P201304                                                                
ORD_RANGE_IMSI       P201305                                                                
ORD_RANGE_IMSI       P201306                                                                
ORD_RANGE_IMSI       P201307                                                                
ORD_RANGE_IMSI       P201308                                                                
ORD_RANGE_IMSI       P201309                                                                
ORD_RANGE_IMSI       P201310                                                                
ORD_RANGE_IMSI       P201311                                                                
ORD_RANGE_IMSI       P201312                                                                
ORD_RANGE_IMSI       P_DEFAULT                                                              
ORD_RANGE_IMSI       P201209                                                                
ORD_RANGE_IMSI       P201208                                                                
ORD_RANGE_IMSI       P201207                                                                
ORD_RANGE_IMSI       P201206                                                                
ORD_RANGE_IMSI       P201205                                                                
ORD_RANGE_IMSI       P201204                                                                
ORD_RANGE_IMSI       P201203                                                                
ORD_RANGE_IMSI       P201202                                                                
ORD_RANGE_IMSI       P201211                                                                

50 rows selected.

 

인덱스는 새로 생성시 통계정보가 새로 모아지는 것을 확인할 수 있었습니다.(last_analyzed 시간이 생성시의 시간)

SQL> select INDEX_NAME,TABLE_NAME,STATUS,NUM_ROWS,LAST_ANALYZED From dba_indexes
where table_name in ('ORD_RANGE','ORD_RANGE_IMSI');

INDEX_NAME              TABLE_NAME             STATUS   NUM_ROWS  LAST_ANALYZED        
----------------------- ---------------------- -------- --------- -------------------- 
ORD_RANGE_PK            ORD_RANGE              N/A       14954886 2023/11/24 22:01:16 
ORD_RANGE_X02           ORD_RANGE              UNUSABLE  15000000 2023/06/01 18:14:24 
ORD_RANGE_X01           ORD_RANGE              N/A       15165475 2022/05/03 22:00:46 
ORD_RANGE_IMSI_PK       ORD_RANGE_IMSI         N/A              0 2023/12/13 15:45:01 
ORD_RANGE_IMSI_X01      ORD_RANGE_IMSI         N/A              0 2023/12/13 15:45:02 
ORD_RANGE_IMSI_X02      ORD_RANGE_IMSI         VALID            0 2023/12/13 15:45:03

 

컬럼

SQL> select  table_name,column_name, num_distinct, histogram, num_buckets, to_char(last_analyzed,'YYYY-MM-DD hh24:mi:ss')
from    user_tab_cols where table_name in ('ORD_RANGE_IMSI','ORD_RANGE')
order by 1;

TABLE_NAME             COLUMN_NAME               NUM_DISTINCT HISTOGRAM       NUM_BUCKETS TO_CHAR(LAST_ANALYZED,'YYYY-MM-DDHH24:MI:SS') 
---------------------- ------------------------- ------------ --------------- ----------- --------------------------------------------- 
ORD_RANGE              ORD_NO                        14916608 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE              ORD_YM                              24 FREQUENCY                24 2023-11-24 22:00:36                          
ORD_RANGE              ORD_DT                             730 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE              ORD_HMS                          50324 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE              SHOP_NO                            200 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE              UPPER2                             676 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE              UPPER_CASE                    14973952 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE              LOWER_CASE                    14976000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE              ALPHABET                      15000000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE              ALPHABET_NUMERIC                     0 NONE                      0 2023-11-24 22:00:36                          
ORD_RANGE_IMSI         ORD_NO                                 NONE                                                                     
ORD_RANGE_IMSI         ORD_YM                                 NONE                                                                     
ORD_RANGE_IMSI         ORD_DT                                 NONE                                                                     
ORD_RANGE_IMSI         ORD_HMS                                NONE                                                                     
ORD_RANGE_IMSI         SHOP_NO                                NONE                                                                     
ORD_RANGE_IMSI         UPPER2                                 NONE                                                                     
ORD_RANGE_IMSI         UPPER_CASE                             NONE                                                                     
ORD_RANGE_IMSI         LOWER_CASE                             NONE                                                                     
ORD_RANGE_IMSI         ALPHABET                               NONE                                                                     
ORD_RANGE_IMSI         ALPHABET_NUMERIC                       NONE                                                                     
ORD_RANGE_IMSI         ADD_COL                                NONE                                                                     
ORD_RANGE_IMSI         ADD_COL2                               NONE                                                                     
ORD_RANGE_IMSI         ADD_COL3                               NONE

 

 

3.원본테이블의 통계정보 export

통계정보저장용 테이블 생성합니다.

exec dbms_stats.create_stat_table('DEV','STATS_ORD_RANGE','USERS');

 

원본테이블의 통계정보를 export합니다

exec DBMS_STATS.EXPORT_TABLE_STATS(ownname => 'DEV', tabname=> 'ORD_RANGE',STATTAB => 'STATS_ORD_RANGE', statown => 'DEV',CASCADE => TRUE);

 

테이블의 내용을 확인합니다.

테이블 조회한 결과입니다. TYPE별로 Table인경우 T,Index의 경우 I,Column의 경우는 C가 보이고 값들이 보입니다.

SQL> select type,c1,c2,c4,c5,n1,n2,n3,n4,n5 from DEV.STATS_ORD_RANGE;

TYPE C1                  C2             C4              C5       N1        N2        N3        N4        N5        
---- ------------------- -------------- --------------- -------- --------- --------- --------- --------- --------- 
T    ORD_RANGE           P201201                        DEV         625157     14688       161    625157          
...                                                           
I    ORD_RANGE_PK        P201201                        DEV         625157      1924    625157         1         1
I    ORD_RANGE_PK        P201202                        DEV         625594      1962    625594         1         1
...                                                           
I    ORD_RANGE_X02                      ORD_RANGE       DEV       15000000     52265    135200         1       110
I    ORD_RANGE_X01       P201201                        DEV              0         0         0         0         0
...                                                           
C    ORD_RANGE           P201201        ORD_NO          DEV         625157  1.6e-006    625157    625157         0
C    ORD_RANGE           P201202        ORD_NO          DEV         625594  1.6e-006    625594    625594         0
C    ORD_RANGE           P201203        ORD_NO          DEV         625150  1.6e-006    625150    625150         0
C    ORD_RANGE           P201204        ORD_NO          DEV         624633  1.6e-006    624633    624633         0
C    ORD_RANGE           P201205        ORD_NO          DEV         624403  1.6e-006    624403    624403         0
C    ORD_RANGE           P201206        ORD_NO          DEV         624187  1.6e-006    624187    624187         0
C    ORD_RANGE           P201207        ORD_NO          DEV         620800  1.6e-006    620800    624361         0
C    ORD_RANGE           P201208        ORD_NO          DEV         613248  1.6e-006    613248    623940         0
C    ORD_RANGE           P201209        ORD_NO          DEV         620928  1.6e-006    620928    623608         0
C    ORD_RANGE           P201210        ORD_NO          DEV         624770  1.6e-006    624770    624770         0
C    ORD_RANGE           P201211        ORD_NO          DEV         625167  1.6e-006    625167    625167         0
C    ORD_RANGE           P201212        ORD_NO          DEV         625024  1.6e-006    625024    626477         0
C    ORD_RANGE           P201301        ORD_NO          DEV         618816  1.6e-006    618816    624595         0
C    ORD_RANGE           P201302        ORD_NO          DEV         624556  1.6e-006    624556    624556         0
C    ORD_RANGE           P201303        ORD_NO          DEV         626941  1.6e-006    626941    626941         0
C    ORD_RANGE           P201304        ORD_NO          DEV         623936  1.6e-006    623936    625107         0
C    ORD_RANGE           P201305        ORD_NO          DEV         625046  1.6e-006    625046    625046         0
C    ORD_RANGE           P201306        ORD_NO          DEV         623616  1.6e-006    623616    626169         0
C    ORD_RANGE           P201307        ORD_NO          DEV         619200  1.6e-006    619200    625381         0
C    ORD_RANGE           P201308        ORD_NO          DEV         625043  1.6e-006    625043    625043         0
C    ORD_RANGE           P201309        ORD_NO          DEV         622784  1.6e-006    622784    624483         0
C    ORD_RANGE           P201310        ORD_NO          DEV         619136  1.6e-006    619136    626386         0
C    ORD_RANGE           P201311        ORD_NO          DEV         620992  1.6e-006    620992    624018         0
C    ORD_RANGE           P201312        ORD_NO          DEV         624828  1.6e-006    624828    624828         0

 

4.export 받은 통계정보 수정(update) (중요!★ ★ ★ ★ ★ ★)

이 테이블에서 C1이 object 이름인것을 확인할 수 있습니다. 이 정보를 새로운테이블(임시테이블) 이름으로 update해줍니다.

 

1) 테이블 정보에 테이블명 변경

UPDATE STATS_ORD_RANGE SET C1 = 'ORD_RANGE_IMSI'
WHERE C1 = 'ORD_RANGE'
AND TYPE='T';

 

2)컬럼정보에 테이블명 변경

UPDATE STATS_ORD_RANGE SET C1 = 'ORD_RANGE_IMSI'
WHERE C1 = 'ORD_RANGE'
AND TYPE='C';

 

3)인덱스정보에 인덱스명 변경

UPDATE STATS_ORD_RANGE SET C1 = 'ORD_RANGE_IMSI_PK'
WHERE C1 = 'ORD_RANGE_PK'
AND TYPE='I';

UPDATE STATS_ORD_RANGE SET C1 = 'ORD_RANGE_IMSI_X01'
WHERE C1 = 'ORD_RANGE_X01'
AND TYPE='I';


UPDATE STATS_ORD_RANGE SET C1 = 'ORD_RANGE_IMSI_X02'
WHERE C1 = 'ORD_RANGE_X02'
AND TYPE='I';

 

commit;

 

5.임시테이블에 통계정보 import

exec DBMS_STATS.IMPORT_TABLE_STATS(ownname => 'DEV', tabname=> 'ORD_RANGE_IMSI',STATTAB => 'STATS_ORD_RANGE', statown => 'DEV',CASCADE => TRUE);

 

6. 테이블들의 통계정보 확인

 

테이블

SQL> select table_name,partition_name,NUM_ROWS,BLOCKS,AVG_ROW_LEN,LAST_ANALYZED From dba_tab_partitions where table_name in ('ORD_RANGE','ORD_RANGE_IMSI')
order by 1;

TABLE_NAME           PARTITION_NAME       NUM_ROWS  BLOCKS    AVG_ROW_LEN LAST_ANALYZED        
-------------------- ------------------------------ --------- ----------- -------------------- 
ORD_RANGE            P201210                 624770     14676         162 2023/07/06 22:05:20 
ORD_RANGE            P201209                 623608     14649         162 2023/07/06 22:05:13 
ORD_RANGE            P201212                 626477     14716         162 2023/07/06 22:05:34 
ORD_RANGE            P201301                 624595     14672         162 2023/07/06 22:05:41 
ORD_RANGE            P201302                 624556     14671         162 2023/07/06 22:05:48 
ORD_RANGE            P201303                 626941     14727         162 2023/07/06 22:05:54 
ORD_RANGE            P201304                 625107     14684         162 2023/07/06 22:06:01 
ORD_RANGE            P201305                 625046     14682         162 2023/07/06 22:06:08 
ORD_RANGE            P201306                 626169     14709         162 2023/07/06 22:06:14 
ORD_RANGE            P201307                 625381     14690         162 2023/07/06 22:06:21 
ORD_RANGE            P201308                 625043     14682         162 2023/07/06 22:06:28 
ORD_RANGE            P201309                 624483     14669         162 2023/07/06 22:06:35 
ORD_RANGE            P201310                 626386     14714         162 2023/07/06 22:06:42 
ORD_RANGE            P201311                 624018     14659         162 2023/07/06 22:06:48 
ORD_RANGE            P201312                 624828     14677         162 2023/07/06 22:06:55 
ORD_RANGE            P_DEFAULT                                                                
ORD_RANGE            P201211                 625167     14685         162 2023/07/06 22:05:27 
ORD_RANGE            P201208                 623940     12849         162 2023/07/06 22:04:50 
ORD_RANGE            P201207                 624361     12850         162 2023/07/06 22:04:44 
ORD_RANGE            P201206                 624187     12824         162 2023/07/06 22:04:37 
ORD_RANGE            P201205                 624403     14673         162 2023/07/06 22:07:02 
ORD_RANGE            P201204                 624633     12832         162 2023/11/24 22:07:43 
ORD_RANGE            P201203                 625150     14688         162 2023/11/24 22:07:49 
ORD_RANGE            P201202                 625594     14704         161 2023/11/24 22:07:52 
ORD_RANGE            P201201                 625157     14688         161 2023/11/24 22:07:46 

ORD_RANGE_IMSI       P201210                 624770     14676         162 2023/07/06 22:05:20 
ORD_RANGE_IMSI       P201201                 625157     14688         161 2023/11/24 22:07:46 
ORD_RANGE_IMSI       P201212                 626477     14716         162 2023/07/06 22:05:34 
ORD_RANGE_IMSI       P201301                 624595     14672         162 2023/07/06 22:05:41 
ORD_RANGE_IMSI       P201302                 624556     14671         162 2023/07/06 22:05:48 
ORD_RANGE_IMSI       P201303                 626941     14727         162 2023/07/06 22:05:54 
ORD_RANGE_IMSI       P201304                 625107     14684         162 2023/07/06 22:06:01 
ORD_RANGE_IMSI       P201305                 625046     14682         162 2023/07/06 22:06:08 
ORD_RANGE_IMSI       P201306                 626169     14709         162 2023/07/06 22:06:14 
ORD_RANGE_IMSI       P201307                 625381     14690         162 2023/07/06 22:06:21 
ORD_RANGE_IMSI       P201308                 625043     14682         162 2023/07/06 22:06:28 
ORD_RANGE_IMSI       P201309                 624483     14669         162 2023/07/06 22:06:35 
ORD_RANGE_IMSI       P201310                 626386     14714         162 2023/07/06 22:06:42 
ORD_RANGE_IMSI       P201311                 624018     14659         162 2023/07/06 22:06:48 
ORD_RANGE_IMSI       P201312                 624828     14677         162 2023/07/06 22:06:55 
ORD_RANGE_IMSI       P_DEFAULT                                                                
ORD_RANGE_IMSI       P201209                 623608     14649         162 2023/07/06 22:05:13 
ORD_RANGE_IMSI       P201208                 623940     12849         162 2023/07/06 22:04:50 
ORD_RANGE_IMSI       P201207                 624361     12850         162 2023/07/06 22:04:44 
ORD_RANGE_IMSI       P201206                 624187     12824         162 2023/07/06 22:04:37 
ORD_RANGE_IMSI       P201205                 624403     14673         162 2023/07/06 22:07:02 
ORD_RANGE_IMSI       P201204                 624633     12832         162 2023/11/24 22:07:43 
ORD_RANGE_IMSI       P201203                 625150     14688         162 2023/11/24 22:07:49 
ORD_RANGE_IMSI       P201202                 625594     14704         161 2023/11/24 22:07:52 
ORD_RANGE_IMSI       P201211                 625167     14685         162 2023/07/06 22:05:27

 

인덱스

SQL> select INDEX_NAME,TABLE_NAME,STATUS,NUM_ROWS,LAST_ANALYZED From dba_indexes
where table_name in ('ORD_RANGE','ORD_RANGE_IMSI');

INDEX_NAME                TABLE_NAME                STATUS   NUM_ROWS  LAST_ANALYZED        
------------------------- ------------------------- -------- --------- -------------------- 
ORD_RANGE_PK              ORD_RANGE                 N/A       14954886 2023/11/24 22:01:16 
ORD_RANGE_X02             ORD_RANGE                 UNUSABLE  15000000 2023/06/01 18:14:24 
ORD_RANGE_X01             ORD_RANGE                 N/A       15165475 2022/05/03 22:00:46 
ORD_RANGE_IMSI_PK         ORD_RANGE_IMSI            N/A       14954886 2023/11/24 22:01:16 
ORD_RANGE_IMSI_X01        ORD_RANGE_IMSI            N/A       15165475 2022/05/03 22:00:46 
ORD_RANGE_IMSI_X02        ORD_RANGE_IMSI            VALID     15000000 2023/06/01 18:14:24

 

컬럼

SQL> select  table_name,column_name, num_distinct, histogram, num_buckets, to_char(last_analyzed,'YYYY-MM-DD hh24:mi:ss')
from    user_tab_cols where table_name in ('ORD_RANGE_IMSI','ORD_RANGE')
order by 1;

TABLE_NAME            COLUMN_NAME               NUM_DISTINCT HISTOGRAM       NUM_BUCKETS TO_CHAR(LAST_ANALYZED,'YYYY-MM-DDHH24:MI:SS') 
--------------------- ------------------------- ------------ --------------- ----------- --------------------------------------------- 
ORD_RANGE             ORD_NO                        14916608 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             ORD_YM                              24 FREQUENCY                24 2023-11-24 22:00:36                          
ORD_RANGE             ORD_DT                             730 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             ORD_HMS                          50324 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             SHOP_NO                            200 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             UPPER2                             676 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             UPPER_CASE                    14973952 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             LOWER_CASE                    14976000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             ALPHABET                      15000000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             ALPHABET_NUMERIC                     0 NONE                      0 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ORD_NO                        14916608 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ORD_YM                              24 FREQUENCY                24 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ORD_DT                             730 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ORD_HMS                          50324 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        SHOP_NO                            200 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        UPPER2                             676 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        UPPER_CASE                    14973952 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        LOWER_CASE                    14976000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ALPHABET                      15000000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ALPHABET_NUMERIC                     0 NONE                      0 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ADD_COL                                NONE                                                                     
ORD_RANGE_IMSI        ADD_COL2                               NONE                                                                     
ORD_RANGE_IMSI        ADD_COL3                               NONE

 

추가된 컬럼 제외하고 원본테이블과 통계정보가 동일하게 된것을 확인할 수 있습니다.

 

사용한 통계테이블을 삭제합니다.

exec DBMS_STATS.DROP_STAT_TABLE(ownname => 'DEV',stattab => 'STATS_ORD_RANGE');

 

끝.

 

++)추가사항

다음날 확인해보니 추가한 3개컬럼에 대해서 2023-12-14일 22:07:40분에 통계정보가 최신으로 업데이트가 되었습니다.

SQL> select  table_name,column_name, num_distinct, histogram, num_buckets, to_char(last_analyzed,'YYYY-MM-DD hh24:mi:ss')
from    user_tab_cols where table_name in ('ORD_RANGE_IMSI','ORD_RANGE')
order by 1,2;

TABLE_NAME            COLUMN_NAME            NUM_DISTINCT HISTOGRAM       NUM_BUCKETS TO_CHAR(LAST_ANALYZED,'YYYY-MM-DDHH24:MI:SS') 
--------------------- ---------------------- ------------ --------------- ----------- --------------------------------------------- 
ORD_RANGE             ALPHABET                   15000000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             ALPHABET_NUMERIC                  0 NONE                      0 2023-11-24 22:00:36                          
ORD_RANGE             LOWER_CASE                 14976000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             ORD_DT                          730 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             ORD_HMS                       50324 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             ORD_NO                     14916608 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             ORD_YM                           24 FREQUENCY                24 2023-11-24 22:00:36                          
ORD_RANGE             SHOP_NO                         200 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             UPPER2                          676 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE             UPPER_CASE                 14973952 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ADD_COL                           0 NONE                      0 2023-12-14 22:07:40                          
ORD_RANGE_IMSI        ADD_COL2                          0 NONE                      0 2023-12-14 22:07:40                          
ORD_RANGE_IMSI        ADD_COL3                          0 NONE                      0 2023-12-14 22:07:40                          
ORD_RANGE_IMSI        ALPHABET                   15000000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ALPHABET_NUMERIC                  0 NONE                      0 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        LOWER_CASE                 14976000 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ORD_DT                          730 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ORD_HMS                       50324 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ORD_NO                     14916608 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        ORD_YM                           24 FREQUENCY                24 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        SHOP_NO                         200 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        UPPER2                          676 NONE                      1 2023-11-24 22:00:36                          
ORD_RANGE_IMSI        UPPER_CASE                 14973952 NONE                      1 2023-11-24 22:00:36

 

dba_tables를 확인해보니 동일한 날짜로 업데이트가 되었습니다.

SQL> select table_name,num_rows,blocks,last_analyzed From dba_tables where table_name in ('ORD_RANGE_IMSI','ORD_RANGE');

TABLE_NAME              NUM_ROWS  BLOCKS    LAST_ANALYZED        
----------------------- --------- --------- -------------------- 
ORD_RANGE                15000000    345100 2023/11/24 22:01:14 
ORD_RANGE_IMSI                  0         0 2023/12/14 22:07:40

 

파티션테이블들은 새로 업데이트되지않고 원본과 동일한 정보를 그대로 가지고 있습니다.

추가된 컬럼에 대해서는 자동으로 그것만 통계정보를 수집해주니  크게 걱정하지 않아도 되겠네요. 

SQL> select table_name,partition_name,NUM_ROWS,BLOCKS,AVG_ROW_LEN,LAST_ANALYZED From dba_tab_partitions where table_name in ('ORD_RANGE','ORD_RANGE_IMSI')
order by 1,2;

TABLE_NAME             PARTITION_NAME         NUM_ROWS  BLOCKS    AVG_ROW_LEN LAST_ANALYZED        
---------------------- ---------------------- --------- --------- ----------- -------------------- 
ORD_RANGE              P201201                   625157     14688         161 2023/11/24 22:07:46 
ORD_RANGE              P201202                   625594     14704         161 2023/11/24 22:07:52 
ORD_RANGE              P201203                   625150     14688         162 2023/11/24 22:07:49 
ORD_RANGE              P201204                   624633     12832         162 2023/11/24 22:07:43 
ORD_RANGE              P201205                   624403     14673         162 2023/07/06 22:07:02 
ORD_RANGE              P201206                   624187     12824         162 2023/07/06 22:04:37 
ORD_RANGE              P201207                   624361     12850         162 2023/07/06 22:04:44 
ORD_RANGE              P201208                   623940     12849         162 2023/07/06 22:04:50 
ORD_RANGE              P201209                   623608     14649         162 2023/07/06 22:05:13 
ORD_RANGE              P201210                   624770     14676         162 2023/07/06 22:05:20 
ORD_RANGE              P201211                   625167     14685         162 2023/07/06 22:05:27 
ORD_RANGE              P201212                   626477     14716         162 2023/07/06 22:05:34 
ORD_RANGE              P201301                   624595     14672         162 2023/07/06 22:05:41 
ORD_RANGE              P201302                   624556     14671         162 2023/07/06 22:05:48 
ORD_RANGE              P201303                   626941     14727         162 2023/07/06 22:05:54 
ORD_RANGE              P201304                   625107     14684         162 2023/07/06 22:06:01 
ORD_RANGE              P201305                   625046     14682         162 2023/07/06 22:06:08 
ORD_RANGE              P201306                   626169     14709         162 2023/07/06 22:06:14 
ORD_RANGE              P201307                   625381     14690         162 2023/07/06 22:06:21 
ORD_RANGE              P201308                   625043     14682         162 2023/07/06 22:06:28 
ORD_RANGE              P201309                   624483     14669         162 2023/07/06 22:06:35 
ORD_RANGE              P201310                   626386     14714         162 2023/07/06 22:06:42 
ORD_RANGE              P201311                   624018     14659         162 2023/07/06 22:06:48 
ORD_RANGE              P201312                   624828     14677         162 2023/07/06 22:06:55 
ORD_RANGE              P_DEFAULT                                                                  
ORD_RANGE_IMSI         P201201                   625157     14688         161 2023/11/24 22:07:46 
ORD_RANGE_IMSI         P201202                   625594     14704         161 2023/11/24 22:07:52 
ORD_RANGE_IMSI         P201203                   625150     14688         162 2023/11/24 22:07:49 
ORD_RANGE_IMSI         P201204                   624633     12832         162 2023/11/24 22:07:43 
ORD_RANGE_IMSI         P201205                   624403     14673         162 2023/07/06 22:07:02 
ORD_RANGE_IMSI         P201206                   624187     12824         162 2023/07/06 22:04:37 
ORD_RANGE_IMSI         P201207                   624361     12850         162 2023/07/06 22:04:44 
ORD_RANGE_IMSI         P201208                   623940     12849         162 2023/07/06 22:04:50 
ORD_RANGE_IMSI         P201209                   623608     14649         162 2023/07/06 22:05:13 
ORD_RANGE_IMSI         P201210                   624770     14676         162 2023/07/06 22:05:20 
ORD_RANGE_IMSI         P201211                   625167     14685         162 2023/07/06 22:05:27 
ORD_RANGE_IMSI         P201212                   626477     14716         162 2023/07/06 22:05:34 
ORD_RANGE_IMSI         P201301                   624595     14672         162 2023/07/06 22:05:41 
ORD_RANGE_IMSI         P201302                   624556     14671         162 2023/07/06 22:05:48 
ORD_RANGE_IMSI         P201303                   626941     14727         162 2023/07/06 22:05:54 
ORD_RANGE_IMSI         P201304                   625107     14684         162 2023/07/06 22:06:01 
ORD_RANGE_IMSI         P201305                   625046     14682         162 2023/07/06 22:06:08 
ORD_RANGE_IMSI         P201306                   626169     14709         162 2023/07/06 22:06:14 
ORD_RANGE_IMSI         P201307                   625381     14690         162 2023/07/06 22:06:21 
ORD_RANGE_IMSI         P201308                   625043     14682         162 2023/07/06 22:06:28 
ORD_RANGE_IMSI         P201309                   624483     14669         162 2023/07/06 22:06:35 
ORD_RANGE_IMSI         P201310                   626386     14714         162 2023/07/06 22:06:42 
ORD_RANGE_IMSI         P201311                   624018     14659         162 2023/07/06 22:06:48 
ORD_RANGE_IMSI         P201312                   624828     14677         162 2023/07/06 22:06:55 
ORD_RANGE_IMSI         P_DEFAULT                                                                  

50 rows selected.
반응형

댓글