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會自動決定是使用原表還是使用物化查詢表。當資料庫中有海量資料時,使用物化查詢表可以極大的提高查詢速度。但是,有一利就有一弊,維護物化查詢表也是相當耗時的。所以,物...