IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Optimisation SQL Server: créer un index ou le mettre à jour


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    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

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    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.

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Par défaut
    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.

Discussions similaires

  1. optimiser sql server partition ou fichier de taille fxe
    Par nicorem dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/12/2008, 19h58
  2. Réponses: 1
    Dernier message: 07/06/2007, 17h04
  3. SQL Server 2000:Clustered Index et Shrink
    Par bédu1 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/01/2007, 14h45
  4. [SQL Server] Créer la copie d'une ligne
    Par joeln3 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 01/06/2006, 16h54
  5. Sql Server Express - Probleme index unique et valeurs null
    Par Fayoul dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 17/02/2006, 17h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo