--Verify table and LOB size
SELECT
(SELECT SUM(S.BYTES)/1024/1024/1024 FROM user_SEGMENTS S where -- The Table Segment size
(S.SEGMENT_NAME = UPPER('WSMESSAGE'))) +
(SELECT SUM(S.BYTES)/1024/1024/1024 -- The Lob Segment Size
FROM user_SEGMENTS S, user_LOBS L
WHERE
(L.SEGMENT_NAME = S.SEGMENT_NAME AND L.TABLE_NAME = UPPER('WSMESSAGE') )) +
(SELECT SUM(S.BYTES)/1024/1024/1024 -- The Lob Index size
FROM user_SEGMENTS S, user_INDEXES I
WHERE
(I.INDEX_NAME = S.SEGMENT_NAME AND I.TABLE_NAME = UPPER('WSMESSAGE') AND INDEX_TYPE = 'LOB' ))
"TOTAL TABLE SIZE"
FROM DUAL;
--Before 56 GB
select table_name, column_name, securefile,compression from user_lobs where TABLE_NAME= 'WSMESSAGE';
ALTER TABLE WSMESSAGE MOVE LOB(REQUEST) STORE AS securefile (TABLESPACE USERS);
ALTER TABLE WSMESSAGE MOVE LOB(RESPONSE) STORE AS securefile (TABLESPACE USERS);
ALTER TABLE WSMESSAGE MOVE LOB(DEBUG) STORE AS securefile (TABLESPACE USERS);
select table_name, column_name, securefile,compression from user_lobs where TABLE_NAME= 'WSMESSAGE';
ALTER TABLE WSMESSAGE MODIFY LOB(REQUEST) (COMPRESS HIGH);
ALTER TABLE WSMESSAGE MODIFY LOB(RESPONSE) (COMPRESS HIGH);
ALTER TABLE WSMESSAGE MODIFY LOB(DEBUG) (COMPRESS HIGH);
select table_name, column_name, securefile,compression from user_lobs where TABLE_NAME= 'WSMESSAGE';
select segment_type,round(sum(bytes)/1024/1024/1024) "GB"
from user_segments
where segment_name='WSMESSAGE'
group by segment_type
union
-- total size of LOBs for table MYTABLE
SELECT segment_TYPE,round(SUM(BYTES)/1024/1024/1024) "GB LOB"
FROM user_SEGMENTS
WHERE SEGMENT_NAME IN(
select distinct lob_name
from user_lob_partitions
where table_name='WSMESSAGE'
)
group by segment_type;
BEGIN
SYS.DBMS_STATS.GATHER_TABLE_STATS (
OwnName => 'IPAM'
,TabName => 'WSMESSAGE_2020_BKUP'
,Estimate_Percent => 10
,Method_Opt => 'FOR ALL COLUMNS SIZE 1'
,Degree => 4
,Cascade => FALSE
,No_Invalidate => FALSE);
END;
/
___________________________________________________________
2nd method
create table IPAM.WSMESSAGE_2020_BKUP_1
(
TRANSACTION_ID NUMBER NOT NULL,
INTERFACE_NAME VARCHAR2(30 BYTE),
OPERATION VARCHAR2(100 BYTE) NOT NULL,
START_TIME DATE NOT NULL,
ELAPSED_TIME NUMBER,
REQUEST CLOB DEFAULT EMPTY_CLOB(),
RESPONSE CLOB DEFAULT EMPTY_CLOB(),
SOURCE VARCHAR2(128 BYTE),
STATUS NUMBER,
REQUEST_TYPE VARCHAR2(50 BYTE),
DEBUG CLOB DEFAULT EMPTY_CLOB()
)
LOB (REQUEST) STORE AS SECUREFILE (
TABLESPACE USERS
enable STORAGE IN ROW
CHUNK 8192
COMPRESS HIGH
NOCACHE
LOGGING
STORAGE (
INITIAL 104K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
))
LOB (RESPONSE) STORE AS SECUREFILE (
TABLESPACE USERS
enable STORAGE IN ROW
CHUNK 8192
COMPRESS HIGH
NOCACHE
LOGGING
STORAGE (
INITIAL 104K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
))
LOB (DEBUG) STORE AS SECUREFILE (
TABLESPACE USERS
enable STORAGE IN ROW
CHUNK 8192
COMPRESS HIGH
NOCACHE
LOGGING
STORAGE (
INITIAL 104K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
))
TABLESPACE USERS
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MAXSIZE UNLIMITED
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCACHE;
insert into IPAM.WSMESSAGE_2020_BKUP_1 select * from IPAM.WSMESSAGE;
select * from IPAM.WSMESSAGE_2020_BKUP;
commit;
SELECT
(SELECT SUM(S.BYTES)/1024/1024/1024 FROM user_SEGMENTS S where -- The Table Segment size
(S.SEGMENT_NAME = UPPER('WSMESSAGE'))) +
(SELECT SUM(S.BYTES)/1024/1024/1024 -- The Lob Segment Size
FROM user_SEGMENTS S, user_LOBS L
WHERE
(L.SEGMENT_NAME = S.SEGMENT_NAME AND L.TABLE_NAME = UPPER('WSMESSAGE') )) +
(SELECT SUM(S.BYTES)/1024/1024/1024 -- The Lob Index size
FROM user_SEGMENTS S, user_INDEXES I
WHERE
(I.INDEX_NAME = S.SEGMENT_NAME AND I.TABLE_NAME = UPPER('WSMESSAGE') AND INDEX_TYPE = 'LOB' ))
"TOTAL TABLE SIZE"
FROM DUAL;
No comments:
Post a Comment