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

Paramétrage Index

5 réponses
Avatar
J
Bonjour,

J'ai une requête qui prend un certain temps.
Dans l'analyseur de requête sql, j'ai essayé l'Assistant paramétrage
d'index. En regardant le script généré, je me pose deux questions :

- Il crée un index sur une colonne qui contient une foreign key. Il me
semblait qu'une clé étrangère était forcemment indexée. Ce n'est pas le
cas ?

- Il génère plusieurs CREATE STATISTICS ... qui semblent s'intéresser à
des colonnes effectivement importante pour la requête. Que sont les
Statistics ? Est-ce quelque chose qui doit être "maintenu" (j'ai vu
UPDATE STATISTICS) ? Peut-on en créer autant que l'on veut (est-ce que
ça a un coût important) ? Connaissez vous un document / livre sur cet
aspect (le bon usage des statistics).

Merci.

JL

5 réponses

Avatar
Gregory DURAND
"J" wrote in message
news:48746eb0$0$18203$
Bonjour,

J'ai une requête qui prend un certain temps.
Dans l'analyseur de requête sql, j'ai essayé l'Assistant paramétrage
d'index. En regardant le script généré, je me pose deux questions :

- Il crée un index sur une colonne qui contient une foreign key. Il me
semblait qu'une clé étrangère était forcemment indexée. Ce n'est pas le
cas ?

- Il génère plusieurs CREATE STATISTICS ... qui semblent s'intéresser à
des colonnes effectivement importante pour la requête. Que sont les
Statistics ? Est-ce quelque chose qui doit être "maintenu" (j'ai vu UPDATE
STATISTICS) ? Peut-on en créer autant que l'on veut (est-ce que ça a un
coût important) ? Connaissez vous un document / livre sur cet aspect (le
bon usage des statistics).

Merci.

JL



Bonjour,

En ce qui concerne les "STATISTICS", je pense que les articles suivants
pourraient vous être de quelque utilité:

http://www.microsoft.com/technet/prodtechnol/sql/2005/qrystats.mspx
http://technet.microsoft.com/fr-fr/magazine/cc194416(TechNet.10).aspx
http://sql-server-performance.com/tips/index_tuning_wizard_p1.aspx

--
En espérant avoir pu vous aider,
Cordialement,

Gregory DURAND
Avatar
J
Gregory DURAND a écrit :

...
En ce qui concerne les "STATISTICS", je pense que les articles suivants
pourraient vous être de quelque utilité:

http://www.microsoft.com/technet/prodtechnol/sql/2005/qrystats.mspx
http://technet.microsoft.com/fr-fr/magazine/cc194416(TechNet.10).aspx
http://sql-server-performance.com/tips/index_tuning_wizard_p1.aspx




Merci pour ces liens, je vais étudier.

JL
Avatar
SQLpro
On 9 juil, 09:54, J wrote:
Bonjour,

J'ai une requête qui prend un certain temps.
Dans l'analyseur de requête sql, j'ai essayé l'Assistant paramétrag e
d'index. En regardant le script généré, je me pose deux questions :

- Il crée un index sur une colonne qui contient une foreign key. Il me
semblait qu'une clé étrangère était forcemment indexée. Ce n'es t pas le
cas ?



Jamais. En revanche il est fortement conseillé d'indexer toutes les
clefs étrangères mais d'éviter les index inclus.


- Il génère plusieurs CREATE STATISTICS ... qui semblent s'intéress er à
des colonnes effectivement importante pour la requête. Que sont les
Statistics ? Est-ce quelque chose qui doit être "maintenu" (j'ai vu
UPDATE STATISTICS) ? Peut-on en créer autant que l'on veut (est-ce que
ça a un coût important) ? Connaissez vous un document / livre sur cet
aspect (le bon usage des statistics).



Les statistiques sont créées dans deux cas :
- derrière chaque index
- derrières certaines colonnes non indexées lorsque des requêtes
utilisent à plusieurs reprise la colonne*
Les statistiques sont nécessaires à l'optimiseur pour déterminer s'il
doit utiliser ou non la recherche dans l'index au vu de la valeur
passée.
Par exemple dans le cas d'une table de client, avec un index sur la
colonne VILLE, alors le moteur relationnel peut utiliser l'index si
l'on recherche les clients habitant à Trifouilly les Argonzettes peu
d'occurences) et va se passer de l'index pour les clients de Paris.
(trop nombreuses occurences).

A lire sur les statistiques, les index et le DTA (par l'exemple) :
http://sqlpro.developpez.com/optimisation/indexation/

A +

Frédéric BROUARD - SQLpro - MVP SQL Server
Spécialiste SQL/BD modélisation de données
SQL & SGBDR http://sqlpro.developpez.com/
Expert SQL Server : http://www.sqlspot.com
audits - optimisation - tuning - formation




Merci.

JL


Avatar
J
SQLpro a écrit :
...
- Il crée un index sur une colonne qui contient une foreign key. Il me
semblait qu'une clé étrangère était forcemment indexée. Ce n'est pas le
cas ?



Jamais. En revanche il est fortement conseillé d'indexer toutes les
clefs étrangères mais d'éviter les index inclus.



Merci pour votre réponse très intéressante. Juste une précision,
qu'est-ce que vous entendez par "éviter les index inclus" ?

Jean
Avatar
Fred BROUARD
J a écrit :
SQLpro a écrit :
...
- Il crée un index sur une colonne qui contient une foreign key. Il me
semblait qu'une clé étrangère était forcemment indexée. Ce n'est pas le
cas ?



Jamais. En revanche il est fortement conseillé d'indexer toutes les
clefs étrangères mais d'éviter les index inclus.



Merci pour votre réponse très intéressante. Juste une précision,
qu'est-ce que vous entendez par "éviter les index inclus" ?

Jean




Par exemple dans les entités en associations plusieurs à plusieurs dans
le modèle conceptuel de données, il y aura création d'une table de
jointure en lieu et place de l'association au niveau du modèle physique.
Dans ce cas l'ensemble des clefs étrangères forme la clef primaire de la
table et à ce titre est indexé. Cependant il convient aussi de mettre en
place des index sur toutes les clefs étrangères. Mais pour celle qui se
trouve être en tête de la vectorisation de la clef primaire cela s'avère
inutile car cet index de clef étrangère est inclus dans l'index de la
clef primaire.

A +

--
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.sqlspot.com *************************