Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2010, 11h00   #1
Invité de passage
 
Etienne THIRANT
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : Etienne THIRANT

Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 0
Points : 0
Par défaut Optimisation SQL Server: créer un index ou le mettre à jour

Bonjour,

Je suis actuellement chargé d'optimiser une procédure stockée. Celle-ci effectue un traitement par lot pour ne par faire tout d'une fois et exploser les Transaction logs.
Les tables de travail dont elle a besoin sont donc créées puis supprimées pour chaque lot. Sur certaines de ces tables ont été mis des indexes.
Je me pose alors la question suivante au sujet des performances:
Quel est le plus couteux: créer un index ou insérer dans une table ayant un index?
Dans mon cas la question serait: faut-il mieux créer la table, la charger et ensuite y mettre un clustered index (et cela pour chaque lot), ou bien créer la table une bonne fois pour toute avec l'index cluster, sachant que chaque lot chargera puis videra la table.
Il me semble que des INSERT dans une table ayant un clustered index est assez couteux. Mais qu'en est-il par rapport au fait de créer plusieurs fois la meme table et de reconstruire à chaque fois un index?

Merci d'avance
EliasK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 12h17   #2
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 610
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 610
Points : 741
Points : 741
Citation:
Envoyé par EliasK Voir le message
Il me semble que des INSERT dans une table ayant un clustered index est assez couteux. Mais qu'en est-il par rapport au fait de créer plusieurs fois la meme table et de reconstruire à chaque fois un index?
Insérer dans une table sans index et créer l'index ensuite sera plus rapide, car les pages d'index n'ont pas à être mises à jour pendant l'insertion. Cela dit lorsque la volumétrie est faible il est difficile de constater une quelconque différence. De toutes manières lorsque ta table de travail est supprimée l'index est supprimé avec, donc tu n'as pas trop le choix.
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2010, 13h51   #3
Invité de passage
 
Etienne THIRANT
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : Etienne THIRANT

Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 0
Points : 0
Citation:
Envoyé par dbaffaleuf Voir le message
De toutes manières lorsque ta table de travail est supprimée l'index est supprimé avec, donc tu n'as pas trop le choix.
La solution aurait été de créer la table puis de charger/tronquer à chaque utilisation.

Merci pour ta réponse, ça peut etre un debut d'optimisation...

Bonne journée.
EliasK est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h43.


 
 
 
 
Partenaires

Hébergement Web