收缩段空间

mac2022-06-30  107

查看oracle给 对象分配的空间SQL> select segment_name,segment_type,tablespace_name,bytes/1024/1024 "MB" ,blocks from user_segments where segment_name='TEST';SEGMENT_NAME    SEGMENT_TYPE       TABLESPACE_NAME                        MB     BLOCKS--------------- ------------------ ------------------------------ ---------- ----------TEST03          TABLE              TEST                                   28       3584查看该对象实际占用的空间SQL> select num_rows,avg_row_len,num_rows*avg_row_len/1024/1024 "MB" from user_tables where table_name='TEST';  NUM_ROWS AVG_ROW_LEN         MB---------- ----------- ----------   2070296           7 13.8207169     根据每行的长度 以及 行数 大致获得 该表的空间  SQL> select count(*)*6/1024/1024 from test;COUNT(*)*6/1024/1024--------------------                  12                  查看表空间的使用量SQL> select tablespace_name,used_space,tablespace_size,used_percent  from dba_tablespace_usage_metrics;TABLESPACE_NAME                USED_SPACE TABLESPACE_SIZE USED_PERCENT------------------------------ ---------- --------------- ------------ADMIN_TBS                               8           15872   .050403226ADMIN_TBS2                              8            6400         .125EXAMPLE                              8728         4194302   .208091835SYSAUX                              29720         4194302   .708580355SYSTEM                              60680         4194302   1.44672463TEMP                                    0         4194302            0TEST                                29184         4194302   .695801113UNDOTBS1                              176         4194302   .004196169USERS                                 400         4194302   .009536748第2次操作SQL> delete from test03;2097152 rows deleted.SQL> insert into test03 select * from test03;2097152 rows created.SQL> commit;Commit complete.SQL> select segment_name,segment_type,tablespace_name,bytes/1024/1024 "MB" ,blocks from user_segments where segment_name='TEST03';SEGMENT_NAME    SEGMENT_TYPE       TABLESPACE_NAME                        MB     BLOCKS--------------- ------------------ ------------------------------ ---------- ----------TEST03          TABLE              TEST                                   56       7168SQL> select num_rows,avg_row_len,num_rows*avg_row_len/1024/1024 "MB" from user_tables where table_name='TEST03';  NUM_ROWS AVG_ROW_LEN         MB---------- ----------- ----------   2070296           7 13.8207169SQL> select count(*)*6/1024/1024 from test03;COUNT(*)*6/1024/1024--------------------                  24收缩表空间shrink spaceSQL> alter table test03 enable row movement;Table altered.SQL> alter table test03 shrink space;Table altered.SQL> analyze table test03 compute statistics;Table analyzed.SQL> select segment_name,segment_type,tablespace_name,bytes/1024/1024 "MB" ,blocks from user_segments where segment_name='TEST03';SEGMENT_NAME    SEGMENT_TYPE       TABLESPACE_NAME                        MB     BLOCKS--------------- ------------------ ------------------------------ ---------- ----------TEST03          TABLE              TEST                              55.1875       7064仅仅收缩了 104个数据块!!!moveSQL> alter table test03 move tablespace admin_tbs;Table altered.SQL> alter table test03 disable row movement;Table altered.SQL> select segment_name,segment_type,tablespace_name,bytes/1024/1024 "MB" ,blocks from user_segments where segment_name='TEST03';SEGMENT_NAME    SEGMENT_TYPE       TABLESPACE_NAME                        MB     BLOCKS--------------- ------------------ ------------------------------ ---------- ----------TEST03          TABLE              ADMIN_TBS                              56       7168第3次SQL> insert into test values('oracle');1 row created.SQL> /1 row created.SQL> insert into test select * from test;2 rows created.SQL> /4 rows created.SQL> /8 rows created.SQL> /16 rows created.SQL> /32 rows created.SQL> /64 rows created.SQL> /128 rows created.SQL> /256 rows created.SQL> /512 rows created.SQL> /1024 rows created.SQL> /2048 rows created.SQL> /4096 rows created.SQL> /8192 rows created.SQL> /16384 rows created.SQL> /32768 rows created.SQL> /65536 rows created.SQL> /131072 rows created.SQL> commit;Commit complete.SQL> select count(*) from test;  COUNT(*)----------    262144SQL> select segment_name,segment_type,tablespace_name,bytes/1024/1024 "MB" ,blocks from user_segments where segment_name='TEST';SEGMENT_NAME    SEGMENT_TYPE       TABLESPACE_NAME                        MB     BLOCKS--------------- ------------------ ------------------------------ ---------- ----------TEST            TABLE              TEST                                    4        512SQL> select num_rows,avg_row_len,num_rows*avg_row_len/1024/1024 "MB" from user_tables where table_name='TEST';  NUM_ROWS AVG_ROW_LEN         MB---------- ----------- ----------         0           0          0SQL> analyze table test compute statistics;Table analyzed.SQL> select num_rows,avg_row_len,num_rows*avg_row_len/1024/1024 "MB" from user_tables where table_name='TEST';  NUM_ROWS AVG_ROW_LEN         MB---------- ----------- ----------    262144          10        2.5SQL> select count(*)*6/1024/1024 from test;COUNT(*)*6/1024/1024--------------------                 1.5SQL> delete from test;262144 rows deleted.SQL> commit;Commit complete.SQL> analyze table test compute statistics;Table analyzed.SQL> select segment_name,segment_type,tablespace_name,bytes/1024/1024 "MB" ,blocks from user_segments where segment_name='TEST';SEGMENT_NAME    SEGMENT_TYPE       TABLESPACE_NAME                        MB     BLOCKS--------------- ------------------ ------------------------------ ---------- ----------TEST            TABLE              TEST                                    4        512SQL> select num_rows,avg_row_len,num_rows*avg_row_len/1024/1024 "MB" from user_tables where table_name='TEST';  NUM_ROWS AVG_ROW_LEN         MB---------- ----------- ----------         0           0          0SQL> select tablespace_name,used_space,tablespace_size,used_percent  from dba_tablespace_usage_metrics;TABLESPACE_NAME                USED_SPACE TABLESPACE_SIZE USED_PERCENT------------------------------ ---------- --------------- ------------ADMIN_TBS                               8           15872   .050403226ADMIN_TBS2                              8            6400         .125EXAMPLE                              8728         4194302   .208091835SYSAUX                              29984         4194302   .714874608SYSTEM                              60680         4194302   1.44672463TEMP                                  128         4194302   .003051759TEST                                  512         4194302   .012207037UNDOTBS1                            81656         4194302   1.94683168USERS                                 400         4194302   .009536748SQL> alter table test move compress;Table altered.SQL> analyze table test compute statistics;Table analyzed.SQL> select segment_name,segment_type,tablespace_name,bytes/1024/1024 "MB" ,blocks from user_segments where segment_name='TEST';SEGMENT_NAME    SEGMENT_TYPE       TABLESPACE_NAME                        MB     BLOCKS--------------- ------------------ ------------------------------ ---------- ----------TEST            TABLE              TEST                                .0625          8SQL> select num_rows,avg_row_len,num_rows*avg_row_len/1024/1024 "MB" from user_tables where table_name='TEST';  NUM_ROWS AVG_ROW_LEN         MB---------- ----------- ----------         0           0          0SQL> select tablespace_name,used_space,tablespace_size,used_percent  from dba_tablespace_usage_metrics;TABLESPACE_NAME                USED_SPACE TABLESPACE_SIZE USED_PERCENT------------------------------ ---------- --------------- ------------ADMIN_TBS                               8           15872   .050403226ADMIN_TBS2                              8            6400         .125EXAMPLE                              8728         4194302   .208091835SYSAUX                              29984         4194302   .714874608SYSTEM                              60680         4194302   1.44672463TEMP                                  128         4194302   .003051759TEST                                    8         4194302   .000190735UNDOTBS1                             8232         4194302   .196266268USERS                                 400         4194302   .009536748SQL> alter table test nocompress;Table altered.

转载于:https://www.cnblogs.com/iyoume2008/p/4690685.html

最新回复(0)