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 :

Défragmenter une table


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut Défragmenter une table
    bonjour

    pour défragmenter des indexes je trouve pas mal d'infos sur le net, à priori la reconstruction serait le plus efficace

    mais concernant les tables, est-ce utile que les pages soient contigües ? comment défragmente-t-on une table ? (comment trouve-t-on le niveau de fragmentation ?)
    toutes mes tables ont un index clustered, je ne pense pas que ca entre en compte mais je le précise quand même ...

    merci
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    je pense avoir trouvé ce qu'il faut sur smo (dll du modèle objet d'sql server)
    on peut faire rebuild ou rebuildindexes sur un objet table
    je regarderais au passage la requete qui passe dans profiler ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Hello,

    La table est votre index clustered.
    Si vous defragmentez celui-ci, vous defragmentez votre table.

    Bonne journee

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    ok, ca ne me serait pas venu à l'idée, bien que d'un côté ca peut paraitre logique
    et ca explique pourquoi tous les sites qui parlent de défragmentation de table disent de défragmenter les indexes ^^
    et sur une table sans index clustered ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    mais concernant les tables, est-ce utile que les pages soient contigües ? comment défragmente-t-on une table ? (comment trouve-t-on le niveau de fragmentation ?)
    Pour le niveau de fragmentation la DMF sys.dm_db_index_physical_stats peut vous aider.

    pour défragmenter des indexes je trouve pas mal d'infos sur le net, à priori la reconstruction serait le plus efficace
    Oui la reconstruction regènère un index tout neuf. Cependant c'est une opération beaucoup agressive que la défragmentation car le verrouillage n'est pas le même et risque de géner vos utilisateurs à ce moment. (si vous êtes en édition Enterprise vous pouvez cependant bénéficier d'une reconstruction en ligne).

    ++

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    et ca explique pourquoi tous les sites qui parlent de défragmentation de table disent de défragmenter les indexes ^^
    En général ce qu'on trouve sur la toile parle de défragmentation des indexes. Défragmenter un index cluster c'est défragmenter la table elle même car l'index cluster est la table triée. Cependant défragmenter un index non cluster ne veut pas dire que cela défragmente votre table car un index non cluster duplique les données de la table en fonction de la définition de celui-ci. La défragmentation concerne unique ces données dupliqués.

    On peut parler également de reconstruction de tables sans index cluster. On appelle cela reconstruire une table HEAP. Dans ce cas la notion de fragmentation n'est pas la même que pour les indexes. Il y a différentes méthodes pour défragmenter une table HEAP comme la création d'un index cluster sur la table, l'utilisation de la commande ALTER TABLE REBUILD depuis SQL Server 2008, l'export des données de la table HEAP vers une nouvelle table ....

    ++

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    merci bien à vous 2 pour ces infos

    ces reconstructions seront faites seulement en cas d'arrêt chez les clients, sinon ca sera une réorganisation des indexes seulement, qui doit être moins verrouillant qu'un rebuild
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Défragmenter les indexes d'une table
    Par ben_harper dans le forum Administration
    Réponses: 3
    Dernier message: 28/11/2008, 12h24
  2. Défragmenter une table
    Par Doctor Z dans le forum Administration
    Réponses: 14
    Dernier message: 09/06/2004, 17h57
  3. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16
  4. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05
  5. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55

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