Вы не можете сделать всю базу данных одновременно, но вы могли бы сделать несколько запросов вместе с LISTDEF , чтобы получить аналогичный результат.
Сначала найдите нужные индексы:
SELECT ' INCLUDE INDEX ' || RTRIM(CREATOR) || '.' || RTRIM(NAME)
FROM SYSIBM.SYSINDEXES
WHERE DBNAME = 'MYDB'
Это даст вам список индексов, связанных с этой базой данных. Затем вы можете принять результаты как часть большего LISTDEF. Вот пример JCL (честно говоря, я не уверен, насколько это относится к моему магазину, поэтому могут потребоваться некоторые изменения):
//*****************************************************
//* RUN REBUILD INDEX UTILITY
//*****************************************************
//IXRBREST EXEC PGM=IEFBR14 DUMMY STEP FOR RESTART
//IXRBUTIL EXEC DB2UPROC,SYSTEM=DB2T,COND=(4,LT)
//STEPLIB DD DSN=DB2.PROD.SDSNLOAD,DISP=SHR
//DB2UPROC.SYSIN DD *
LISTDEF INDEXES
<insert generated list here>
REBUILD INDEX LIST INDEXES
SORTKEYS SORTDEVT SYSDA SHRLEVEL CHANGE
STATISTICS REPORT YES UPDATE ALL
MAXRO 240 LONGLOG CONTINUE DELAY 900 TIMEOUT TERM
DRAIN_WAIT 50 RETRY 6 RETRY_DELAY 30
Это должно дать вам индексы, которые нужно перестроить. Если есть некоторые, которые необходимо перестроить, и некоторые из них хороши, вы можете добавить SCOPE PENDING
к утилите REBUILD INDEX
, и она будет перестраивать только те, которые находятся в состоянии ожидания.