DB2之臨時表

2021-09-02 12:14:46 字數 1095 閱讀 6286

db2支援session臨時表. 該錶只能存在於某一session或某一交易上下文中,對其他使用者不可見. db2 v8增加了對臨時表的索引的支援, 這對於提公升查詢速度比較有意義; 

下面舉例子來說明session臨時表的使用: 

1. 在建立session臨時表前, 您必須建立臨時表空間 

create user temporary tablespace test 

pagesize 4 k managed by system 

using ('[curdir]\temp'); 

2. 定義session臨時表,該定義拷貝transactions的表結構, on commit preserve rows用來指定即使該交易提交了, t1臨時表裡的資料仍然存在, 

只有當session終止後,t1表才會消失. 

如果不加上  on commit preserve rows 當insert臨時表提交之後臨時表裡的資料會自動刪除掉。 

declare global temporary table t1 

like transactions 

on commit preserve rows not logged in test; 

3. 把transaction表的記錄插入t1臨時表中. 

insert into session.t1 

select * from transactions 

4.從t1表中選擇記錄, 請注意這條語句的執行速度. 

select * from session.t1 

where store='rockwood'; 

5. 在t1表上建立索引, db2 v8允許在臨時表上建立索引,可以提公升對臨時表的查詢速度. 

create index session.t1index on session.t1(store); 

6. 您再執行同樣的select語句, 可以看出查詢速度有所提高. 

select * from session.t1 

where store='rockwood'; 

7.在db2 9中 不必自己建立臨時表空間了,建立臨時表時會自動建立乙個使用者臨時表空間systoolstmpspace。 

DB2建立臨時表時的錯誤

db2cmd下執行下面建立臨時表 declare global temporary table results recid varchar 32 xxly varchar 100 lxdh varchar 32 fkrq date on commit preserve rows with repla...

DB2 初步學習之系統表

db2 系統表的功能 在 db2 資料庫被建立的時候,db2 會建立一些系統表。這些系統表中記錄了所有資料庫物件的資訊,表或檢視的列的資料型別,約束的定義,物件的許可權和物件之間的依賴關係等。這些系統表的模式為 sysibm,其表名以 sys 作為字首。例如 systables sysviews 等...

DB2 物化查詢表

start db2 物化查詢表mqt materialized query tables 儲存了乙個查詢的結果,當我們查詢相關表時,db2會自動決定是使用原表還是使用物化查詢表。當資料庫中有海量資料時,使用物化查詢表可以極大的提高查詢速度。但是,有一利就有一弊,維護物化查詢表也是相當耗時的。所以,物...