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

при попытке создать индекс получаю 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
Не создается индекс. SQLSTATE=54008
    #40061700
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
trasher22,

Добрый день.

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

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

Тип: VARGRAPHIC, Column size: 8000, Buffer length: 8000
...
Рейтинг: 0 / 0
Не создается индекс. SQLSTATE=54008
    #40061808
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Не создается индекс. SQLSTATE=54008
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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