【问题标题】:How to create a larger temporary tablespace?如何创建更大的临时表空间?
【发布时间】:2016-10-30 19:19:04
【问题描述】:

我在我的 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

那么我怎样才能创建一个符合我要求的临时表空间呢?

【问题讨论】:

  • 您必须有一个缓冲池,每个表空间的页面大小都匹配。使用CREATE BUFFERPOOL 命令创建一个。
  • @mustaccio 有点明显......奏效了。您是否要将其发布为答案,以便获得您的互联网业力?

标签: db2 db2-luw tablespace page-size


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多