ORACLE 表空间管理

1:查询数据库的表空间的使用情况

SELECT F.TABLESPACE_NAME,
       (T.TOTAL_SPACE - F.FREE_SPACE) "USED (MB)",
       F.FREE_SPACE "FREE (MB)",
       T.TOTAL_SPACE "TOTAL (MB)",
       (ROUND((F.FREE_SPACE / T.TOTAL_SPACE) * 100)) || %  PER_FREE
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BLOCKS * (SELECT VALUE / 1024
                                     FROM V$PARAMETER
                                    WHERE NAME = db_block_size) / 1024)) FREE_SPACE
          FROM DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) F,
       (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / 1048576)) TOTAL_SPACE
          FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME) T
 WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME

2:查询当前的数据库中表的大小排序

SELECT owner,
       DECODE(partition_name,
              NULL,
              segment_name,
              segment_name || : || partition_name) NAME,
       segment_type,
       tablespace_name,
       BYTES / 1024 / 1024,
       initial_extent,
       next_extent,
       pct_increase,
       extents,
       max_extents
  FROM dba_segments t
 WHERE 1 = 1
   AND extents > 1
   and t.tablespace_name = TBS_COMMON --and t.partition_name  like ‘%__tb%‘
 ORDER BY BYTES / 1024 / 1024 DESC --, 3

 

3:移动表到另外一个较空闲的表空间

alter table tablename move tablespace tablespacenamme parallel 8;

 

4:修改oracle的默认的时间数据的展示形式

alter session set nls_date_format = yyyy-mm-dd hh24:mi:ss

 

5:查看对表的操作记录

SELECT t.sql_text, t.first_load_time, t.last_load_time, t.module, t.action FROM v$sqlarea t WHERE upper(t.sql_text) LIKE %% ORDER BY t.first_load_time DESC

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。