清理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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章