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

MS SQL Server Discussion :

Optimisation et maintenance


Sujet :

MS SQL Server

  1. #1
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut Optimisation et maintenance
    Bonjour je souhaite juste savoir , lorsqu'une opération de maintenance automatique est lancée (je paramètre des options d'optimisation, de réduction de fichier, de sauvegarde de base, etc...), est ce que cela empêche des utilisateurs d'accéder la base pendant ce temps ( pendant le déclenchement de l'operation de maintenance)?
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pendant le déclenchement, non. Mais pendant chaque opération, ça dépend.
    Par exemple, un DBCC INDEXDEFRAG, ça se fait en ligne. Un DBCC DBREINDEX est une opération hors ligne (les index ne sont pas disponibles pendant la reconstruction), etc....

    Consulte le BOL pour plus de détails.

  3. #3
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Il est fortement recommandé de déloguer tous les utilisateurs pendant la procédure de maintenance de la base de données.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Par défaut
    Je rebondis sur le sujet.

    Quels sont les maintenances qu'il faut faire sur une base SQLServer ?

    Moi je fais juste celles poroposées dans le plan de maintenace standard :
    Optimisation p_sqlmaint -RebldIdx 10 -RmUnusedSpace 50 10
    Contrôle d'intégrité : xp_sqlmaint -CkDB
    Sauvegarde base de données
    Sauvegarde journal des transactions.

    Faut-il aussi faire quelques choses sur les indexes ?

    Merci d'avance pour vos réponse

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je rebondis sur tes questions

    Disons que ces actions sont constituent un bon départ.

    Ce que j'ajoute systématiquement pour la maintenance:

    - une purge des historiques de sauvegardes (trimestrielle)
    - un DBCC UPDATEUSAGE (périodicité à définir)
    - relevé quotidien des tailles des bases avec taux de remplissage

    Pour l'optimisation, par exemple, si tu as des tables sans clustered index, je vérifie régulièrement la quantité de forwarded records, avec leurs impacts sur la lecture des données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    USE dbname
    GO
    DBCC TRACEON(2509)
    DBCC CHECKTABLE(mytable)
    DBCC TRACEOFF(2509)
    SET STATISTICS IO ON
    SELECT * FROM mytable
    SET STATISTICS IO OFF

  6. #6
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    ok merci, sinon concernant le compactage des bases de données, que je fais d'habitude avec les commandes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    backup log $base with no_log
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sous sql entreprise manager, clique droit sur la base et compacter
    Comme ca il m'enleve tout les blancs.
    Apres cà il vire les espaces inutilisée et compact la base.
    Je veux que ca se fasse automatiquement.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Autant tout faire en une fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BACKUP LOG mybase WITH NO_LOG
    GO
    DBCC SHRINKDATABASE(mybase,10)
    GO
    Avec 10 correspondant à 10% d'espace libre souhaité après compactage.

    Mais prend garde à bien sauvegarder ta base immédiatement après le BACKUP LOG ... WITH NO_LOG

  8. #8
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    super et y a t-il moyen d'automatiser ces commandes avec le plan de maintenance?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Je n'utilise pas le plan de maintenance, donc : sais pô !
    Je fais des scripts, que je chaîne dans un travail planifié par l'agent SQL Server, ou bien par osql.exe.

  10. #10
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    .... oki je vais regarder çà également merci pour l'info.

  11. #11
    Membre éclairé
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Par défaut
    Citation Envoyé par kuzco
    Pendant le déclenchement, non. Mais pendant chaque opération, ça dépend.
    Par exemple, un DBCC INDEXDEFRAG, ça se fait en ligne. Un DBCC DBREINDEX est une opération hors ligne (les index ne sont pas disponibles pendant la reconstruction), etc....

    Consulte le BOL pour plus de détails.
    INDEXDEFRAG ou DBREINDEX sont des choses à faire frequement ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Il n'y a pas de fréquence appropriée par défaut, il faut que tu analyses l'évolution de la fragmentation de tes index dans le temps, et voir quand il serait judicieux de les defrag ou rebuild.

    Vois la commande DBCC SHOWCONTIG pour voir les infos de tes index.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut SHRINKDATABASE ne fonctionne pas bien
    Bonjour,

    j'ai une base de prod qui fait 150Go. la commande
    GO
    exec sp_spaceused @updateusage = 'true'
    GO

    me renvoie 45Go de 'unallocated space'.
    je lui lance un DBCC SHRINKDATABASE (PRODUCTION)
    ==> Ca me vide bien ces 45Go mais des le lendemain j'ai le même scénario.

    Comment puis je faire pour supprimer rellement l'espace non utilisé

    Merci d'avance
    Nicolas

  14. #14
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    Ca me vide bien ces 45Go mais des le lendemain j'ai le même scénario.

    Comment puis je faire pour supprimer rellement l'espace non utilisé
    ça c'est stupide !!!
    En effet si 45 Go ont été alloué c'est que SQL Server en a eu besoin. Si vous les supprimez il devra les reconstruire. Or votre post est intitulé "Optimisation et maintenance". Imaginez un propriétaire d'immeuble qui met en location ses biens, mais s'amuserait à les détruire le matin à 8h parce que tout le monde va au boulot et les reconstruire le soir parceque les gens rentrent du boulot ? Serait-ce économiquement viable ? C'est exactement ce que vous voulez faire !!!

    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. [2008R2] Plan de maintenance et optimisation de réquete
    Par charlotte1983 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 07/04/2014, 12h01
  2. Réponses: 0
    Dernier message: 07/11/2013, 12h05
  3. Optimisation de votre SGBDR et de vos requêtes...
    Par SQLpro dans le forum Langage SQL
    Réponses: 35
    Dernier message: 11/01/2013, 11h49
  4. Réponses: 0
    Dernier message: 16/09/2002, 10h35
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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