我在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
那麼,怎樣才能使一個臨時表空間符合我的要求?
您必須爲每個表空間具有匹配頁面大小的緩衝池。使用'CREATE BUFFERPOOL'命令創建一個。 – mustaccio
@mustaccio一種明顯的...工作。你打算髮布這個答案,所以你得到你的互聯網業力? –