達夢資料庫臨時表的介紹及使用

2021-10-05 13:41:05 字數 1795 閱讀 9949

什麼是臨時表,使用者做乙個操作查詢出幾百幾千條資料,我們可以把資料放在記憶體中。當有很多

使用者都這樣做,記憶體空間不足,這個時候就需要把資料儲存在磁碟上。

dm 臨時表支援以下功能:

在臨時表中,會話可以像普通永久表一樣更新、插入和刪除資料;

臨時表的 dml 操作產生較少的 redo 日誌;

臨時表支援建索引,以提高查詢效能;

在乙個會話或事務結束後,資料將自動從臨時表中刪除;

不同使用者可以訪問相同的臨時表,每個使用者只能看到自己的資料;

臨時表的資料量很少,意味著更高效的查詢效率;

臨時表的表結構在資料刪除後仍然存在,便於以後的使用;

臨時表的許可權管理跟普通表一致。

on commit preserve rows --session 會話級臨時表

on commit delete rows --transaction 事務級臨時表

事務級臨時表(整個事務結束後資料會清空)

1、建立臨時表,插入資料

create

global

temporary

table temp_transaction (id int

,name varchar(20

))oncommit

delete

rows

;insert

into temp_transaction values(1

,'a');

insert

into temp_transaction values(2

,'b'

);

2、查詢臨時表

3、提交事務再查詢

會話級臨時表(會話結束後資料會清空)1、建立臨時表,並插入資料

create

global

temporary

table temp_session (id int

,name varchar(20

))oncommit preserve rows

;insert

into temp_session values(1

,'a');

insert

into temp_session values(2

,'b'

);

2、提交事務並查詢(發現資料還在)

3、關閉當前會話,重新開啟發現資料已情況。所以會話級臨時表的資料只能當前會話可檢視到,結束會話資料會清空。

達夢資料庫全域性臨時表

on commit delete rows 指定臨時表是事務級的,每次事務提交或回滾之後,表中所有資料都被刪除 on commit preserve rows 指定臨時表是會話級的,會話結束時才清空表,並釋放臨時 b 樹。接下來我們來做系列測試 root dm1 bin disql ljb dame...

達夢資料庫外部表的使用

外部表就是資料不在資料庫中,而是將外部的檔案通重載入的形式鏈結到資料庫中。例子 1.外部的資料 dmdba dw01 dm cat test.txt 1,a2,b 3,c4,d 2.編寫控制檔案 dmdba dw01 dm cat test.ctl load data infile dm test....

達夢資料庫使用

1 修改最大連線數 先檢視當前的最大連線數 select sf get para value 2,max sessions 修改最大連線數 alter system set max sessions 1000 spfile 重啟資料庫 su dmdba cd dmdbms dmservicedmse...