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其數值
留言列表