Indexation de tables

RPG (3 et 4, free), CL, SQL, etc...
Répondre
fcarton
Messages : 9
Enregistré le : mar. 20 oct. 2020, 09:28:56

Indexation de tables

Message 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.

nbonnet
Messages : 198
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Indexation de tables

Message 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
Nathanaël

fcarton
Messages : 9
Enregistré le : mar. 20 oct. 2020, 09:28:56

Re: Indexation de tables

Message 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.

nbonnet
Messages : 198
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Indexation de tables

Message 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
Nathanaël

Répondre