Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

les index plusieurs question pour les perfs

11 réponses
Avatar
Christophe
Voila j'ai des questions sur les index !


que vaut 'il mieux faire pour avoir des performances optimales ?


J'ai plusieurs dizaines de requetes plus ou moins differentes sur mes
tables.
le dba actuel a créer plusieurs sortent d'index .


Exemple
COL1
COL1 & COL2
COL2
COL3
COL1 & COL3
COL2 & COL3
COL1 & COL2 & COL3


je me demande si de mettre autant d'index que de possibilité est bon
réélement pour les perfs ou si SQL peut se tromper du coup en prenant
l'index pas optimal ?


est-ce que
COL1
COL2
COL3

ne serait pas suffisant pour couvrir tous les cas ?


en bref que vaut'il mieux choisir comme methode d'index ?
Merci par avance.

1 réponse

1 2
Avatar
SQLpro [MVP]
Christophe a écrit :
Donc en gros pour couvrir un maximum de cas
pour un maximum de developpers qui vont pas forcement tenir compte de tout
quand ils ecrivent leurs requetes !

le mieux c'est d'indexer les colonnes les plus utilisées seules ?



Absolument pas !

Il convient de créer des index couvrant en fonction des requêtes :
1) qui sont les plus frqéquentes
2) qui consomment le plus de temps

Autrement dit : auditer le serveur et agréger les résultats de temps
d'exécution par cumul des temps de chaque requêtes identiques aux
paramètres des clauses WHERE et HAVING près.

A +


Exemple
Col1
Col2
Col3

séparement parce que elle peuvent etre appellée seule et si j'ai bien
compris seule la premiere colonne d'un index multicolonne est gerée ?
2 comment cela se comporte t'il pour un where qui appelle la col1 et col3 si
ils sont indexés separement ?

Merci !!
on trouve jamais ces astuces la ?



"SQLpro [MVP]" a écrit dans le message de
news:
1) dans les index multicolonnes, les données sont concaténées.
2) les statistiques ne sont collectées que pour la première colonne

Conclusion :
1) placez la colonne la plus sélective en premier
2) n'utilisez pas de recherche directe sur les colonnes interne de


l'index.
3) réordonnez vos requêtes en tenant compte de 1 et 2

Exemple :

CREATE TABLE T_PATIENT_PTT
(PTT_ID ...
PTT_NOM ...
PTT_PRENOM ...
PTT_NUMSECU ... )

recherches opérées sur Nom, Prenom, NumSecu....

Soit 3 index
Soit 1 index NUMSECU / NOM / PRENOM + éventuellement d'autres index (NOM
/ PRENOM et NOM)

Mais gare au volume des données, car effectivement TROP D'INDEX TUE
L'INDEX !

A +



Christophe a écrit :
Voila j'ai des questions sur les index !


que vaut 'il mieux faire pour avoir des performances optimales ?


J'ai plusieurs dizaines de requetes plus ou moins differentes sur mes
tables.
le dba actuel a créer plusieurs sortent d'index .


Exemple
COL1
COL1 & COL2
COL2
COL3
COL1 & COL3
COL2 & COL3
COL1 & COL2 & COL3


je me demande si de mettre autant d'index que de possibilité est bon
réélement pour les perfs ou si SQL peut se tromper du coup en prenant
l'index pas optimal ?


est-ce que
COL1
COL2
COL3

ne serait pas suffisant pour couvrir tous les cas ?


en bref que vaut'il mieux choisir comme methode d'index ?
Merci par avance.








--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************








--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
1 2