国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

DB2的系統(tǒng)數(shù)據(jù)表空間,用戶數(shù)據(jù)表空間,系統(tǒng)臨時表空間,用戶臨時表空間詳解

這篇具有很好參考價值的文章主要介紹了DB2的系統(tǒng)數(shù)據(jù)表空間,用戶數(shù)據(jù)表空間,系統(tǒng)臨時表空間,用戶臨時表空間詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

可以參考DB2 information center的官方文檔:https://www.ibm.com/docs/zh/db2/10.5?topic=spaces-table-system-user-temporary-data
每個數(shù)據(jù)庫都必須要有最小的一組表空間,這些表空間用于存儲系統(tǒng)數(shù)據(jù)、用戶數(shù)據(jù)和臨時數(shù)據(jù)。

一個數(shù)據(jù)庫至少必須包含三個表空間:
目錄表空間
一個或多個用戶表空間
一個或多個臨時表空間
目錄表空間
目錄表空間包含數(shù)據(jù)庫的所有系統(tǒng)目錄表。此表空間稱為 SYSCATSPACE,它不能被刪除。
用戶表空間
用戶表空間包含用戶定義的表。缺省情況下,將創(chuàng)建一個用戶表空間 USERSPACE1。
如果創(chuàng)建表時未對其指定表空間,那么數(shù)據(jù)庫管理器將自動進(jìn)行選擇。有關(guān)更多信息,請參閱 CREATE TABLE 語句的 IN tablespace-name 子句的文檔。

表空間的頁大小確定了表中的最大行長度或列數(shù)。CREATE TABLE 語句的文檔說明了頁大小與最大行大小和列數(shù)之間的關(guān)系。在 V9.1 之前,缺省頁大小為 4 KB。在 V9.1 及其后續(xù)版本中,缺省頁大小可以是其他受支持的值中的一個。缺省頁大小是在創(chuàng)建新的數(shù)據(jù)庫時聲明的。聲明了缺省頁大小之后,仍然可以使用具有一種頁大小的表空間作為表,而使用具有另一種頁大小的另一個表空間來存儲長型數(shù)據(jù)或 LOB 數(shù)據(jù)。如果列數(shù)或行大小超過表空間頁大小的限制,那么返回一個錯誤(SQLSTATE 42997)。

臨時表空間
臨時表空間包含臨時表。臨時表空間可以是系統(tǒng)臨時表空間或用戶臨時 表空間。
系統(tǒng)臨時表空間存放數(shù)據(jù)庫管理器在執(zhí)行諸如排序或連接之類的操作時所需的臨時數(shù)據(jù)。這些類型的操作需要額外的空間來處理結(jié)果集。數(shù)據(jù)庫必須有至少一個系統(tǒng)臨時表空間;在缺省情況下,創(chuàng)建數(shù)據(jù)庫時會創(chuàng)建一個名為 TEMPSPACE1 的系統(tǒng)臨時表空間。

處理查詢時,數(shù)據(jù)庫管理器可能需要訪問頁大小足以處理與查詢相關(guān)的數(shù)據(jù)的系統(tǒng)臨時表空間。例如,如果查詢返回的數(shù)據(jù)包含長度為 8KB 的行,并且沒有頁大小至少為 8KB 的系統(tǒng)臨時表空間,那么該查詢將失敗。您可能需要創(chuàng)建具有更大頁大小的系統(tǒng)臨時表空間。通過定義頁大小等于用戶表空間的最大頁大小的臨時表空間,可以幫助您避免這些類型的問題。

用戶臨時表空間存放使用 DECLARE GLOBAL TEMPORARY TABLE 或 CREATE GLOBAL TEMPORARY TABLE (DGTT(DECLARE GLOBAL TEMPORARY TABLE)/CGTT(CREATE GLOBAL TEMPORARY TABLE)) 語句創(chuàng)建的表的臨時數(shù)據(jù)。缺省情況下,創(chuàng)建數(shù)據(jù)庫時不會創(chuàng)建這些表空間。它們還存放已創(chuàng)建臨時表的實例化版本。為了能夠定義已聲明臨時表或已創(chuàng)建臨時表,至少一個用戶臨時表空間應(yīng)該是使用相應(yīng) USE 特權(quán)創(chuàng)建的。USE 特權(quán)是使用 GRANT 語句授予的。

如果數(shù)據(jù)庫使用多個臨時表空間,并且需要新的臨時對象,那么優(yōu)化器將為此對象選擇相應(yīng)的頁大小。然后將把該對象分配到具有相應(yīng)頁大小的臨時表空間中。如果存在多個具有該頁大小的臨時表空間,那么將以循環(huán)方式來選擇表空間,即,先選擇具有該頁大小的表空間,然后為將要分配的下一個對象選擇下一個表空間并依此類推,直到用盡所有合適的表空間后回到第一個表空間。但是,在大多數(shù)情況下,建議您不要創(chuàng)建多個具有相同頁大小的臨時表空間。


臨時表的創(chuàng)建和維護(hù)?

在做復(fù)雜業(yè)務(wù)分析時,一個存儲過程也會用到很多臨時表(存儲業(yè)務(wù)分析某一步的中間結(jié)果),這些表的數(shù)據(jù)經(jīng)常變化(每個周期都會被清空再裝入),還需要和別的表做關(guān)聯(lián),那么這種表在建表的時候有什么要注意的嗎?為了提升程序性能,優(yōu)化時考慮這些表嗎?要建立索引嗎?runstats應(yīng)該保持在什么狀態(tài)?需要reorg嗎?


分享一:

這些臨時表不是會話表(DGTT 或 CGTT)吧?如果每次調(diào)用存儲過程生成的臨時表數(shù)據(jù)變化都比較大,建議在存儲過程中搜集統(tǒng)計信息(調(diào)用sysproc.admin_cmd('runstats on table <臨時表>'),因為臨時表每次調(diào)用一般都清空,沒有必要reorg;建不建索引,具體看表關(guān)聯(lián)的需要,存儲過程一般是加工數(shù)據(jù)的,臨時表一般不需要建索引。另外,建議將存儲過程對應(yīng)的package綁定成 REOPT ALWAYS的,這樣每次調(diào)用該存儲過程都會根據(jù)最新的統(tǒng)計信息生成新的執(zhí)行計劃,通常也會提高性能。

分享二:
1)如果是DGTT(DECLARE GLOBAL TEMPORARY TABLE)/CGTT(CREATE GLOBAL TEMPORARY TABLE),則一般不必對其建立index,也不需對其進(jìn)行runstats、reorg,因為DB2查詢優(yōu)化器在每次分析和執(zhí)行SQL時,都會對包含DGTT/CGTT的SQL進(jìn)行重新優(yōu)化并且生成新的最優(yōu)access plan。

分享三:
在排序、表關(guān)聯(lián)等處理時會用到系統(tǒng)臨時表空間,順序是Sortheap不足時溢出到臨時表空間對應(yīng)的bufferpool,buffpool再不足時溢出到磁盤。如果想看數(shù)據(jù)是否使用了系統(tǒng)臨時表空間、使用了多少,直接db2 list tablespaces show detail 看看系統(tǒng)臨時表空間的Used pages即可, 或者db2top 進(jìn)去看表空間(按 t ),再看系統(tǒng)臨時表空間上是否有Writes。


創(chuàng)建用戶臨時表空間測試:

[db2inst1@t3-dtpoc-dtpoc-web04 liys]$ db2 "DECLARE GLOBAL TEMPORARY TABLE temp.employee1 (id int)"
DB21034E ?The command was processed as an SQL statement because it was not a?
valid Command Line Processor command. ?During SQL processing it returned:
SQL0079N ?The Schema name for the declared global temporary table or index?
"EMPLOYEE1" must be SESSION, not "TEMP". ?SQLSTATE=428EK
[db2inst1@t3-dtpoc-dtpoc-web04 liys]$ db2 "DECLARE GLOBAL TEMPORARY TABLE employee1 (id int)" ? ??
DB21034E ?The command was processed as an SQL statement because it was not a?
valid Command Line Processor command. ?During SQL processing it returned:
SQL0286N ?A table space could not be found with a page size of at least "4096"?
that authorization ID "DB2INST1" is authorized to use. ?SQLSTATE=42727
[db2inst1@t3-dtpoc-dtpoc-web04 liys]$ db2pd -d test1 -tablespaces

Database Member 0 -- Database TEST1 -- Active -- Up 0 days 02:05:34 -- Date 2023-08-25-16.40.27.261485

Tablespace Configuration:
Address ? ? ? ? ? ?Id ? ?Type Content PageSz ExtentSz Auto Prefetch BufID BufIDDisk FSC NumCntrs MaxStripe ?LastConsecPg RSE ?Name
0x00007FBF8F81CD40 0 ? ? DMS ?Regular 4096 ? 4 ? ? ? ?Yes ?4 ? ? ? ?1 ? ? 1 ? ? ? ? Def 1 ? ? ? ?0 ? ? ? ? ?3 ? ? ? ? ? ?Yes ?SYSCATSPACE
0x00007FBF8F829EE0 1 ? ? SMS ?SysTmp ?4096 ? 32 ? ? ? Yes ?32 ? ? ? 1 ? ? 1 ? ? ? ? On ?1 ? ? ? ?0 ? ? ? ? ?31 ? ? ? ? ? No ? TEMPSPACE1
0x00007FBF9535F040 2 ? ? DMS ?Large ? 8192 ? 32 ? ? ? Yes ?32 ? ? ? 2 ? ? 2 ? ? ? ? Def 1 ? ? ? ?0 ? ? ? ? ?31 ? ? ? ? ? Yes ?TSP8K
0x00007FBF8F844220 3 ? ? DMS ?Large ? 4096 ? 4 ? ? ? ?Yes ?4 ? ? ? ?1 ? ? 1 ? ? ? ? Def 1 ? ? ? ?0 ? ? ? ? ?3 ? ? ? ? ? ?Yes ?SYSTOOLSPACE
0x00007FBF9536D260 4 ? ? DMS ?Large ? 16384 ?32 ? ? ? Yes ?32 ? ? ? 3 ? ? 3 ? ? ? ? Def 1 ? ? ? ?0 ? ? ? ? ?31 ? ? ? ? ? Yes ?TSP16K
0x00007FBF9537B260 5 ? ? DMS ?Large ? 32768 ?32 ? ? ? Yes ?32 ? ? ? 4 ? ? 4 ? ? ? ? Def 1 ? ? ? ?0 ? ? ? ? ?31 ? ? ? ? ? Yes ?TSP32K
0x00007FBF9539E0A0 6 ? ? DMS ?Large ? 32768 ?32 ? ? ? Yes ?32 ? ? ? 4 ? ? 4 ? ? ? ? Def 1 ? ? ? ?0 ? ? ? ? ?31 ? ? ? ? ? Yes ?TSP32K02
0x00007FBF953AB240 7 ? ? DMS ?Large ? 32768 ?32 ? ? ? Yes ?32 ? ? ? 4 ? ? 4 ? ? ? ? Def 1 ? ? ? ?0 ? ? ? ? ?31 ? ? ? ? ? Yes ?TSP32K03
0x00007FBF953B83E0 8 ? ? DMS ?Large ? 32768 ?32 ? ? ? Yes ?32 ? ? ? 4 ? ? 4 ? ? ? ? Def 1 ? ? ? ?0 ? ? ? ? ?31 ? ? ? ? ? Yes ?TSP32K04

[db2inst1@t3-dtpoc-dtpoc-web04 liys]$ db2 "create user TEMPORARY tablespace TEMPSPACE2 pagesize 32 K"
DB21034E ?The command was processed as an SQL statement because it was not a?
valid Command Line Processor command. ?During SQL processing it returned:
SQL1582N ?The PAGESIZE of the table space "TEMPSPACE2" does not match the?
PAGESIZE of the bufferpool "IBMDEFAULTBP" associated with the table space. ?
SQLSTATE=428CB

[db2inst1@t3-dtpoc-dtpoc-web04 liys]$ db2 "create user TEMPORARY tablespace TEMPSPACE2 pagesize 32 K bufferpool BP32K"
DB20000I ?The SQL command completed successfully.
[db2inst1@t3-dtpoc-dtpoc-web04 liys]$ db2 "DECLARE GLOBAL TEMPORARY TABLE employee1 (id int)" ? ? ? ?
DB20000I ?The SQL command completed successfully.
[db2inst1@t3-dtpoc-dtpoc-web04 liys]$ db2 "DECLARE GLOBAL TEMPORARY TABLE employee2 (id int) in TEMPSPACE2"
DB20000I ?The SQL command completed successfully.文章來源地址http://www.zghlxwxcb.cn/news/detail-671692.html

到了這里,關(guān)于DB2的系統(tǒng)數(shù)據(jù)表空間,用戶數(shù)據(jù)表空間,系統(tǒng)臨時表空間,用戶臨時表空間詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包