1. 程式人生 > >DB2——DB2臨時表的創建

DB2——DB2臨時表的創建

man tool HERE pre 上下 使用 比較 意義 sin

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——DB2臨時表的創建