Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Не создается индекс. SQLSTATE=54008 / 4 сообщений из 4, страница 1 из 1
12.04.2021, 11:27
    #40061635
trasher22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не создается индекс. SQLSTATE=54008
Добрый день!

при попытке создать индекс получаю SQLSTATE=54008. При этом PAGESIZE при создании БД был выставлен 32К.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
db2 => CREATE INDEX I_Element_Value ON DB2ADMIN.LISTOFSTRING (lower(element_value), parent_prop_id, parent_id)

DB21034E  The command was processed as an SQL statement because it was not a valid Command Line Processor command.  During SQL processing it returned:
SQL0614N  The index or index extension "I_ELEMENT_VALUE" cannot be created or altered because the combined length of the specified columns is too long.
SQLSTATE=54008


db2 => select tbspace from syscat.tables where tabschema='DB2ADMIN' and tabname='LISTOFSTRING'

TBSPACE
----------------------------------------------------------------------------------------------------------------
USERSPACE1

  1 record(s) selected.


db2 => list tablespaces show detail

           Tablespaces for Current Database

 Tablespace ID                        = 2
 Name                                 = USERSPACE1
 Type                                 = Database managed space
 Contents                             = All permanent data. Large table space.
 State                                = 0x0000
   Detailed explanation:
     Normal
 Total pages                          = 13048608
 Useable pages                        = 13048576
 Used pages                           = 13047808
 Free pages                           = 768
 High water mark (pages)              = 13047808
 Page size (bytes)                    = 32768
 Extent size (pages)                  = 32
 Prefetch size (pages)                = 32
 Number of containers                 = 1
 Minimum recovery time                = 2021-04-08-11.18.03.000000



Пробовал создать отдельный BUFFERPOOL и TABLESPACE с размерами 32К и перенести в него нужную таблицу через admin_move_table, но не помогло.

Помогите, плз, как все же создать требуемый индекс?
...
Рейтинг: 0 / 0
12.04.2021, 13:18
    #40061700
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не создается индекс. SQLSTATE=54008
trasher22,

Добрый день.

Какие точные типы данных этих 3-х полей, входящих в индекс?
...
Рейтинг: 0 / 0
12.04.2021, 16:43
    #40061769
trasher22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не создается индекс. SQLSTATE=54008
Mark Barinstein, добрый день!

Если создавать индекс только по element_value, то ошибка аналогична.

Тип: VARGRAPHIC, Column size: 8000, Buffer length: 8000
...
Рейтинг: 0 / 0
12.04.2021, 18:08
    #40061808
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не создается индекс. SQLSTATE=54008
trasher22
Тип: VARGRAPHIC, Column size: 8000


SQL and XML limits, Table 9. Database Manager Page Size-specific Limits
"Maximum length of an index key, including all overhead (in bytes)" для пространства в 32K = 8192.
VARGRAPHIC (8000) - это 16000 байтов.

Вы не можете создать индекс по этому полю в Db2.
Можете попробовать что-то такое:
Код: sql
1.
(CAST(SUBSTR(lower(element_value), 1, 4000) AS VARGRAPHIC(4000)), parent_prop_id, parent_id)
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Не создается индекс. SQLSTATE=54008 / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]