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 :

INDEX: drop/create/rebuild ou DBCC indexdefrag


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2004
    Messages : 130
    Par défaut INDEX: drop/create/rebuild ou DBCC indexdefrag
    Bonjour,

    Je souhaite réorganiser le week end les index de mes bases de données utilisateur. Dois je utiliser les DBCC ou le drop/create/rebuild des index?

    d abord,
    Je voudrais savoir la différence entre un DBCC dbreindex et indexdefrag. J ai ma petite idée mais...
    Voici les scripts que je lance: dbreindex et indexdefrag (voir les pièces jointes.)

    ensuite, il paraîtrait qu il soit préférable de droper puis recéer les index. Comment puis je obtenir le sql de create des tout les index de chaque table sans avoir à passer par Management Studio? Quelles tables système dois je attaquer pour générer ce type script?Merci d avance.

    Pour finir, Quelle est la meilleure méthode?

    Merci de vos avis, expériences et astuces.

    Bien à vous tous

    Labienus
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    DBCC dbreindex et indexdefrag
    L'une est agressive, l'autre pas. L'une supprime l'index qui n'existe donc plus le temps de la réindexation et prend moins de temps. L'autre conserve l'index mais est moins optimum (les pages lue par un autre process en cours de defrag ne sont pas reconstruites).

    ensuite, il paraîtrait qu il soit préférable de droper puis recéer les index.
    Tout dépend si vous avez des heures vraiment creuses (presque personne ne travaille sur la base) ou pas.

    Comment puis je obtenir le sql de create des tout les index de chaque table sans avoir à passer par Management Studio?
    Par des requêtes sur les vues systèmes.

    Quelles tables système dois je attaquer pour générer ce type script?
    pas des tables... Des vues systèmes et des fonctions table systèmes en particulier :
    sys.indexes
    sys.index_columns
    sys.dm_db_index_physicals_stats(...)

    Lisez les articles que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/quoi-indexer/
    http://sqlpro.developpez.com/optimis...ntenanceIndex/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Si vous êtes sous SQL 2005 ou 2008, il existe l'outil Assitant Paramétrage de base de donnée qui peut vous permettre d'identifier des index à créer. La condition est d'avoir une trace (réalisée avec SQL Server Profiler) suffisament représentative.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    Cet outil (DTA) n'a strictement rien à voir avec la maintenance d'index, mais propose de créer de nouveaux index. Pas seulement à l'aide d'une trace mais aussi par un fichier de requêtes comme je l'ai indiqué dans l'article que j'ai écrit ici : http://sqlpro.developpez.com/optimisation/indexation/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rebuild après create unique index
    Par Jeanpierre080 dans le forum Administration
    Réponses: 6
    Dernier message: 10/01/2011, 14h06
  2. dbms_job : drop & create index impossible
    Par okilele dans le forum SQL
    Réponses: 1
    Dernier message: 18/04/2007, 08h34
  3. Réponses: 3
    Dernier message: 30/06/2006, 22h56
  4. ORA-00054 resource busy on create index
    Par ducho dans le forum Administration
    Réponses: 2
    Dernier message: 01/10/2004, 14h35

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