Как создать увеличенное временное табличное пространство?

Я установил экземпляр DB2 Express C DB2 на свой компьютер с Windows и использовал его в тестах JUnit для тестирования некоторого кода.

С одним утверждением я получаю следующий код ошибки:

Ошибка SQL DB2: SQLCODE=-1585, SQLSTATE=54048, SQLERRMC= ноль, DRIVER=4.15.134

Я узнал, что это, вероятно, потому, что размер страницы моего временного табличного пространства слишком мал.

Я подтвердил это, оценив размер строки примерно в 16 КБ и обнаружив с помощью IBM Data Studio, что мое временное табличное пространство имеет размер страницы 8 КБ. Поэтому я хочу создать новое временное табличное пространство с размером страницы 32 КБ.

Я пытался сделать это с IBM Data Studio, но поле для размера страницы всегда содержит 8 КБ и не может быть отредактировано.

Я подошел немного ближе к своей цели, используя "Befehlszeilenprozeror", который, как мне кажется, переводится как интерпретатор командной строки или что-то в этом роде. Я выполнил следующую команду:

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 заявление, чтобы создать один.

Во-первых, вы должны создать Bufferpoolразмером 32k с именем MyBF. Затем используйте следующую инструкцию:

CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp PAGESIZE 32K MANAGED BY SYSTEM USING ('C:\DB2\NODE0000\SAMPLE\TNEWTEMP') BUFFERPOOL MyBF;
Другие вопросы по тегам