清理oracle数据库中间表

一、流程

  1. 公司A利用自己业务系统A将指定资源数据以csv文件上传到ftp服务器;
  2. 公司B会通过已写好的定时任务脚本读取该ftp服务器目录下文件,
    (1)先进行检查数据操作:包括本地数据最新日期以及ftp数据最新日期比对;当两个数据日期无问题,就将资源数据文件下载到指定的目录下,若下载成功,退出服务器。
    (2)将下载好的资源文件数据导入中间表a,若完成,会报中间表导入成功;
    (3)利用Oracle图形化管理工具将中间表转成图形表,直到图形表转换成功为止;

二、为何引用中间表

  1. 我认为中间表的引用主要是出于中转的作用。当本公司业务系统需要利用到公司A提供的基础数据并完成写入数据库,进而支撑业务系统满足客户的需求。我们首先应该保障自身数据库数据的安全的前提下,来进行其他的操作;否则会因为进行其他的操作的过程中,因为某个BUG导致自身数据库表受到破坏,从而事倍功半、得不偿失。
  2. 我们也可以将中间表理解成为一个接口表,用于连通我方与其他方,将其他方数据读取到我方数据库表中(处理某项数据时,作为处理后的半成品数据存放的地方)

三、清理中间表

--检查各个表空间占用情况
SELECT DBF.TABLESPACE_NAME "表空间",
       DBF.TOTALSPACE "总量(M)",
       DBF.TOTALBLOCKS "总块数",
       DFS.FREESPACE "剩余总量(M)",
       DFS.FREEBLOCKS "剩余块数",
       (DFS.FREESPACE / DBF.TOTALSPACE) * 100 "空闲比例"
  FROM (SELECT T.TABLESPACE_NAME,
               SUM(T.BYTES) / 1024 / 1024 TOTALSPACE,
               SUM(T.BLOCKS) TOTALBLOCKS
          FROM DBA_DATA_FILES T
         GROUP BY T.TABLESPACE_NAME) DBF,
       (SELECT TT.TABLESPACE_NAME,
               SUM(TT.BYTES) / 1024 / 1024 FREESPACE,
               SUM(TT.BLOCKS) FREEBLOCKS
          FROM DBA_FREE_SPACE TT
         GROUP BY TT.TABLESPACE_NAME) DFS
         
--检查表占用空间
  SELECT SEGMENT_NAME "表名",
         BYTES / (1024 * 1024) "表大小(M)",
         OWNER "用户"
          FROM DBA_SEGMENTS
         WHERE SEGMENT_TYPE = 'TABLE'
           AND OWNER = 'ml'
         ORDER BY BYTES DESC;

CREATE TABLE MID_CM_ML_1 AS SELECT * FROM MID_CM_ML WHERE DAY_ID > TO_CHAR(SYSDATE - 30, 'YYYYMMDD');

SELECT DISTINCT DAY_ID FROM MID_CM_ML_;

DROP TABLE  MID_CM_ML;

PURGE TABLE "BIN$n9mmQcMQowbgU4oaEaxQ0w==$0";

ALTER TABLE  MID_CM_ML_1 RENAME TO  MID_CM_ML;

ALTER TABLE MID_CM_ML MODIFY(DAY_ID NUMBER(20) DEFAULT 1);

create index idx_ml_day_id on MID_CM_ML(DAY_ID);

create index idx_ml_province_id on MID_CM_ML(PROVINCE_ID);

create index idx_ml_int_id on MID_CM_ML(INT_ID);

注意:

  1. 如果在此过程中利用drop语句删除掉本不该删除的表,恢复办法:
首先必须保证是9i或10g以上版本,否则flashback将无法恢复表
flashback table "BIN$b+XkkO1RS5K10uKo9BfmuA==$0" to before drop;
发布了23 篇原创文章 · 获赞 15 · 访问量 6266

猜你喜欢

转载自blog.csdn.net/xiaoleilei666/article/details/104613532