Ogni volta che l'ottimizzatore avrebbe voluto un indice che non c'è, lo scrive. Il consiglio resta lì, e nessuno lo legge.
SELECT TABLE_NAME, KEY_COLUMNS_ADVISED,
TIMES_ADVISED, ESTIMATED_CREATION_TIME,
LAST_ADVISED, MTI_USED, MTI_CREATED
FROM QSYS2.SYSIXADV
WHERE TABLE_SCHEMA = 'PRODLIB'
ORDER BY TIMES_ADVISED DESC
FETCH FIRST 20 ROWS ONLY
L'indice si crea poi normalmente:
CREATE INDEX PRODLIB.ORDINI_CLIENTE_DATA
ON PRODLIB.ORDINI (CODCLI, DTAORD)
Attenzione
i consigli non vanno seguiti tutti. TIMES_ADVISED alto conta più di un
consiglio isolato, che spesso viene da una query lanciata una volta a mano. Ogni indice si
paga a ogni scrittura sulla tabella: crearne venti perché il sistema li ha nominati rende
le letture più veloci e gli inserimenti più lenti.
Suggerimento
MTI_USED indica quante volte il sistema ha costruito un indice
temporaneo al volo per sopperire. Un numero alto lì è il segnale più forte che quell'indice
serve davvero.
Rilasci. QSYS2.SYSIXADV è presente da molti rilasci. Le colonne MTI_USED e
MTI_CREATED, che riguardano gli indici temporanei costruiti al volo, sono state aggiunte
dopo: se la query risponde SQL0206 — colonna non trovata — toglile e il resto funziona.
Commenti
Nessun commento ancora. Sii il primo a commentare!
Devi avere un account per commentare. Accedi · Registrati