如何创建更大的临时表空间?
How to create a larger temporary tablespace?
我在我的 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
statement 创建一个。
首先,您必须创建 Bufferpool
大小为 32k 的名为 MyBF 的文件。
然后使用以下语句:
CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp PAGESIZE 32K MANAGED BY SYSTEM USING ('C:\DB2\NODE0000\SAMPLE\TNEWTEMP') BUFFERPOOL MyBF;
我在我的 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
statement 创建一个。
首先,您必须创建 Bufferpool
大小为 32k 的名为 MyBF 的文件。
然后使用以下语句:
CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp PAGESIZE 32K MANAGED BY SYSTEM USING ('C:\DB2\NODE0000\SAMPLE\TNEWTEMP') BUFFERPOOL MyBF;