如何创建更大的临时表空间?

时间:2016-06-28 12:43:44

标签: db2 db2-luw tablespace page-size

我在我的Windows机器上安装了DB2 Express C DB2实例,并在JUnit测试中使用它来测试一些代码。

使用一个语句,我得到以下错误代码:

  

DB2 SQL错误: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

那么如何创建符合我要求的临时表空间呢?

2 个答案:

答案 0 :(得分:1)

每个表空间必须有一个具有匹配页面大小的缓冲池。使用CREATE BUFFERPOOL statement创建一个。

答案 1 :(得分:0)

首先,您必须创建名为MyBF的大小为32k的Bufferpool。 然后使用以下语句:

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