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).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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é:
"J" <lacoste@alussinan.org> wrote in message
news:48746eb0$0$18203$426a74cc@news.free.fr...
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é:
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é:
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
On 9 juil, 09:54, J <laco...@alussinan.org> 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
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
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
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" ?
- 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
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 *************************
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 *************************
- 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 *************************