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 :

Performance du base de données SQL server 2000


Sujet :

Administration SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 189
    Points : 53
    Points
    53
    Par défaut Performance du base de données SQL server 2000
    Bonjour,

    j'ai une instance de base de données sql server installé sur un server windows 2003
    Actuellement j'ai un probleme de performance
    et je voudrai faire une defragmentation, d'abord avec l'outil windows, et je voudrai savoir si je le fait est ce qu'il aura impact avec le fichier des donneés fragmenter.sinon comment je peux defragmenter les fichier de base de donnés sql server

    Merci

  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
    21 772
    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 : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    En aucun cas vous ne pouvez, ni ne devez utiliser le defragmenteur de Windows qui n'offre aucune garantie en cas de crash...

    1) défragmenter un fichier de base de données suppose l'arrêt du serveur
    2) les fichiers d'une base étant par nature énorme, il y a de grandes chances que ce process dure très longtemps ou que Windows arrive à bout de ressource et soit incapable de finaliser la chose ce qui conduit à un fichier flingué

    En revanche il est possible de défragmenter les structures logiques (tables et index de votre base) à l'aide d'une procédure douce ou radicale :
    méthode douce : DBCC INDEXDEFRAG (...)
    méthode radicale : DBCC DBREINDEX (...)
    Cette dernière étant plus propre, mais ne permet pas l'utilisation des index pendant la phase de reconstruction.

    Voir l'aide en ligne pour ces deux commandes.

    Et pour un doc plus complète sur le sujet, lire l'article que j'ai écrit : 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 du Club
    Inscrit en
    Juillet 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 189
    Points : 53
    Points
    53
    Par défaut
    merci pour ta reponse mais je ne comprend pas tres bien c'est qye tu veux dire avec "En aucun cas vous ne pouvez, ni ne devez utiliser le defragmenteur de Windows qui n'offre aucune garantie en cas de crash..."

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous ne pouvez pas utiliser le défragmenteur de Windows (qui au passage est de piètre qualité) ni un défragmenteur tiers parce que les fichiers de base de données sont accédés en exclusivité apr SQL Server qui maintient perpétuellement un verrou dessus.

    Cela vous oblige donc, comme vous l'a dit SQLPro, à arrêter l'instance SQL Server, pour que ce dernier ne verouille plus les fichier ... mais pouvez-vous vous le permettre ?

    En effet, le temps de la défragmentation, surtout si vous avez des fichiers de base de données volumineux, peut prendre énormément de temps ... et pendant ce temps la base de données est inaccessible, donc vous ne pouvez pas y sotcker de nouvelles données ...
    Si vous êtes en environnement OLTP c'est impensable, d'autant qu'en arrêtant l'instance, vous perdez le cache de données :
    au redémarrage de l'instance, toutes les requêtes qui seront exécutées devront préalablement être recompilées, ce qui est gourmand en ressources CPU ...

    Si en revanche votre base de données est très peu utilisée, pourquoi pas ...
    mais vous auriez du penser à dimensionner vos fichiers avant de stocker des données dans votre base, car même si vous défragmentez vos fichiers de base de données maintenant, si vos fichiers sont trop petits, SQL Server devra réallouer des pages sur le disque dur (avec au passage des temps de traitement médiocre au vu de la rapidité des disques ...), et donc vos fichiers de base de données seront de nouveau fragmentés ...

    @++

  5. #5
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    Pour compléter les propos de SQLPro et Elsuket :

    Défragmenter vos fichiers sql n'est pas conseillé pour plusieurs raisons :

    - Les lectures et écritures des données sur SQL Server sont aléatoires. Lorsque SQL Server alloue une extension, celle-ci n'est pas contigue par rapport à la précédente. Cela signifie que la tête de lecture du disque doit dans tous les cas se déplacer pour effectuer la lecture ou l'écriture suivante. Défragmenter votre disque risque de n'avoir aucun effet dans ce cas précis. Il peut même arriver que ceci soit contre performant. La défragmentation risque d'augmenter la distance que doit parcourir la tête de lecture pour aller chercher ou écrire les prochaines données et donc augmenter les délais ...

    - Le défragmenteur de windows peut croire que les fichiers sql sont fragmentés alors que ce n'est pas le cas (cf article de sqlpro qui l'explique très bien)

    - Si vous utilisez un SAN , même .. Windows peut croire que les fichiers sont fragmentés alors que le SAN les gère correctement.

    ++

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 189
    Points : 53
    Points
    53
    Par défaut
    Bonjour
    Merci pour votre reponse

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

Discussions similaires

  1. echec sauvegarde base de donnée sql server 2000
    Par alicia26 dans le forum Administration
    Réponses: 6
    Dernier message: 07/11/2008, 14h58
  2. Réponses: 4
    Dernier message: 27/03/2008, 09h39
  3. Partage d'une base de données SQL Server 2000
    Par YounesM dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/11/2007, 11h34
  4. Réponses: 1
    Dernier message: 09/05/2006, 16h31

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