close

Oracle DB 有一Table架構非常好用

關鍵字可以搜尋:GLOBAL TEMPORARY TABLE

其主要目的是暫存資料,而且是By Session資料不會被其他人使用

我看大家常常在串MMT的資要影響效能

不如先把需要的資料塞到Temp Table 再用Update的方式提升效能

而且可以寫成Procedure的架構

不用一定要用一個SQL把整串要的資料串好

 

A. Temp Table By Session說明

A1. 先建立Temp Table

CREATE GLOBAL TEMPORARY TABLE GL_REPORT_TEMP
(
  ATTR1    VARCHAR2(200 BYTE),
  ATTR2    VARCHAR2(200 BYTE),
  ATTR3    VARCHAR2(200 BYTE),
  ATTR4    VARCHAR2(200 BYTE),
  ATTR5    VARCHAR2(200 BYTE),
  ATTR6    VARCHAR2(200 BYTE),
  ATTR7    VARCHAR2(200 BYTE),
  ATTR8    VARCHAR2(200 BYTE),
  ATTR9    VARCHAR2(200 BYTE),
  ATTR10   VARCHAR2(200 BYTE),
  RPT_ID   VARCHAR2(32 BYTE),
  LINE_NO  NUMBER
)
ON COMMIT DELETE ROWS
NOCACHE
/

 

A2. 在連線1裡面寫入資料到Temp Table並查詢

 

A3. 至連線2查詢剛才Insert的資料是查不到的

 

B. Temp Table 應用

B1. 傳統查MMT的方法如下,光是SELECT總數就要15秒

 

B2. 改成先Insert主要資料在Update其數值

 

arrow
arrow
    創作者介紹
    創作者 Chuck 的頭像
    Chuck

    Chuck Oracle Engineer

    Chuck 發表在 痞客邦 留言(0) 人氣()