Page 1 sur 1

Indexation de tables

Posté : mar. 20 oct. 2020, 09:39:03
par fcarton
Bonjour, je me torture l'esprit en ce moment concernant l'indexation de tables. Nous avons de nombreux index (historiques) et je me charge de remettre un peu d'ordre :D .

Je me pose particulièrement des questions sur des index qui incluent la clé primaire.

Ex
Create Table TOTRONCON (
TOURNE Char(7) Not Null
NUMPN1 Char(3) Not Null
NUMPN2 Char(3) Not Null
....
Constraint TOTRONCON_TOURNE_NUMPN1
Primary Key(TOURNE, NUMPN1));

Et j'ai des index du style
CREATE INDEX TOTRONCON1 ON TOTRONCON (
TOPTIM, TOURNE, NUMPN1
);

Est ce que ce genre d'index est légitime ? Et si oui faut-il préciser UNIQUE ?
En tout cas il est utilisé.

Merci de m'eclairer.

Re: Indexation de tables

Posté : mar. 20 oct. 2020, 10:06:00
par nbonnet
Bonjour,

concernant la légitimité d'un index : est-il utilisé ? Si oui, il semble légitime ... Difficile d'apporter une réponse plus contextuelle sans information.

On peut indiquer UNIQUE sur cet index (par "héritage" de la clé primaire)

Cordialement

Re: Indexation de tables

Posté : mar. 20 oct. 2020, 10:34:48
par fcarton
Merci pour le retour.

L'utilisation/préconisation d'index par le moteur SQL est un peu sans limite...
On ne peut se permettre de créer tous les index préconisés et le moteur est un peu sans fin dans ses préconisations....
Et un index, même, utilisé n'est pas forcement utile...Là toute la difficulté....

Dans un premier temps je vais préciser UNIQUE pour ce genre d'index...ca optimisera probablement les perfs...
Une analyse fine devra être menée par la suite.

Re: Indexation de tables

Posté : mar. 20 oct. 2020, 11:03:36
par nbonnet
Les données statistiques disponibles avec DB2 peuvent aider :

select * from QSYS2.SYSINDEXSTAT => donne l'usage des index, pour utilisation dans une requête ou statistiques, discrimination des clés ...

Egalement
select * from QSYS2.SYSTABLEINDEXSTAT