2016-06-28 92 views
0

我在Windows機器上安裝了DB2 Express C DB2實例,並在JUnit測試中使用它來測試某些代碼。如何創建一個更大的臨時表空間?

有了一個說法,我得到以下錯誤代碼:

DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048, SQLERRMC=null, DRIVER=4.15.134

我才知道,這可能是因爲我的臨時表空間的頁面大小小。

我通過估計16k左右的行大小和使用IBM Data Studio發現我的臨時表空間的頁面大小爲8k來證實了這一點。因此,我想創建一個頁面大小爲32k的新臨時表空間。

我嘗試使用IBM Data Studio進行此操作,但頁面大小字段始終包含8 KB且無法編輯。

通過使用「Befehlszeilenprozessor」,我認爲這可以轉化爲命令解釋器或其他東西,從而更接近我的目標。我執行以下命令:

CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp PAGESIZE 32K MANAGED BY SYSTEM USING ('C:\DB2\NODE0000\SAMPLE\TNEWTEMP') 

,並得到以下結果:

DB21034E Der Befehl wurde als SQL-Anweisung verarbeitet, da es sich um  
keinen gültigen Befehl des Befehlszeilenprozessors handelte. Während der 
SQL-Verarbeitung wurde Folgendes ausgegeben: 
SQL1582N Die Seitengröße (PAGESIZE) für den Tabellenbereich "TMP_TBSP" stimmt 
nicht mit der Seitengröße für den Pufferpool "IBMDEFAULTBP" überein, der 
diesem Tabellenbereich zugeordnet ist. SQLSTATE=428CB 

我想相關的部分大致翻譯爲:

SQL1582N the page size (PAGESIZE) for the table space "TMP_TBSP" does not 
match the page size of the buffer pool "IBMDEFAULTBP" assigned to this 
tablespace. SQLSTATE=428CB 

那麼,怎樣才能使一個臨時表空間符合我的要求?

+1

您必須爲每個表空間具有匹配頁面大小的緩衝池。使用'CREATE BUFFERPOOL'命令創建一個。 – mustaccio

+0

@mustaccio一種明顯的...工作。你打算髮布這個答案,所以你得到你的互聯網業力? –

回答