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 :

Maintenance Plan - Lock - SQL Server 2008R2


Sujet :

Administration SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Maintenance Plan - Lock - SQL Server 2008R2
    Bonjour,

    Je précise tout d'abord que je ne suis pas DBA, mais par manque de moyen, je m'occupe en grande partie de l'administration de la base de données de notre projet.

    J'ai voulu mettre en place un plan de maintenance quotidien sur la base de données, le voici dans l'ordre :
    - Check Database Integrity
    - Reorganize Index
    - Update Statistics
    - Back Up Database
    - Maintenance Cleanup

    Il me semble que c'est plutôt une bonne pratique sur un serveur SQL très sollicité. Ce plan est exécuté à 3h du matin toutes les nuits.

    Le problème que je rencontre est que lors de l'exécution de ce plan, les frontaux du site qui requêtent la base empilent les requêtes car la base est apparemment incapable de répondre. J'imagine donc que ce plan de maintenance génère un lock général lors d'une des étapes, et que les différentes procédures stockées ne peuvent plus s'exécuter et attendent de pouvoir reprendre la main.

    Autre problème, qui peut ne pas en être un, c'est que le temps d'exécution est en moyenne de 2h30, est-ce normal ? (Le fichier mdf de la base pèse 2,5 Go)

    Enfin dernière question, est-il vraiment nécessaire d'exécuter ce type de maintenance tous les jours ?

    Merci d'avance pour vos réponses, et n'hésitez pas à me communiquer de bonnes pratiques, voire meilleures que les miennes

    Guillaume

  2. #2
    Membre éprouvé
    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
    Points : 1 069
    Points
    1 069
    Par défaut
    -Check Database Integrity: une fois par semaine en week end c'est déjà pas mal.
    - Reorganize index: voir si les indexes sont vraiment fragmentés, mais sinon une fois par semaine en week end.
    - Update Statistics: si les options de stats auto sont activées sur les bases (options auto update statistics, auto create statistics) et qu'aucune table n'est mise à jour en manuel (cf post), pas d'utilité de lancer un update stats tous les jours sur toutes les tables.

  3. #3
    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
    La vérification d'intégrité peut en effet se planifier en fin de semaine par exemple comme l'explique David.

    La maintenance de vos index dépend principalement de votre charge et du type des opérations effectués sur vos tables. En fonction de vos mises à jour (INSERT, UPDATE, DELETE) vous devrez voir votre planification. Il se peut même que vous deviez voir s'il ne faut pas reconstruire vos index dans certains cas (fragmentation > 30% ..à exclure les petites tables).

    - Update Statistics: si les options de stats auto sont activées sur les bases (options auto update statistics, auto create statistics) et qu'aucune table n'est mise à jour en manuel (cf post), pas d'utilité de lancer un update stats tous les jours sur toutes les tables
    .

    Là pas tout à fait d'accord avec David. L'option de mise à jour automatique des tables est moins puissante que de faire une mise à jour des statistiques via un plan de maintenance. L'algorythme employé peut devenir inefficace en fonction du volume de données dans la table (500 lignes + 20% des données globales à atteindre pour déclencher une mise à jour dans le process normal pour les tables > 8MB il me semble). Après vous pouvez remplacer la tâche par défaut de votre plan qui s'attaque à toutes vos statistiques en la remplaçant par l'instance sp_updatestatistics qui à partir de SQL Server 2005 ne met à jour que les statistiques dites obsolètes.

    ++

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Merci pour vos réponses !

    En effet, il me semblait bien que tous les jours, c'était peut être un peu trop. Je vais mettre vos conseils en pratique assez rapidement.

    En ce qui concerne les statistiques, nous avons des tables de plus de 40 millions de lignes, je ne sais pas si ça change quelque choses à ce que vous me dites, mais je préfère le préciser

    Enfin, il me reste cette dernière interrogation, est-ce normal que les procédures stockées se bloquent pendant une partie du processus ? Car du coup, le site ne répond plus, et c'est assez embêtant pour un site grand public !

    Merci encore

  5. #5
    Membre éprouvé
    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
    Points : 1 069
    Points
    1 069
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Là pas tout à fait d'accord avec David. L'option de mise à jour automatique des tables est moins puissante que de faire une mise à jour des statistiques via un plan de maintenance. L'algorythme employé peut devenir inefficace en fonction du volume de données dans la table (500 lignes + 20% des données globales à atteindre pour déclencher une mise à jour dans le process normal pour les tables > 8MB il me semble). Après vous pouvez remplacer la tâche par défaut de votre plan qui s'attaque à toutes vos statistiques en la remplaçant par l'instance sp_updatestatistics qui à partir de SQL Server 2005 ne met à jour que les statistiques dites obsolètes.
    ++
    Tu as raison dans l'absolu, mais là la base ne fait que 2,5Gb. Il faut voir dans quelle proportion l'update stats prend du temps sur les 2h30 de traitements quotidiens, avec toute l'activité IO et le verrouillage que ça suppose. Après je suis d'accord avec toi, ce n'est pas si simple, et tout dépend de la vitesse d'obsolescence des stats dans les tables.

Discussions similaires

  1. Plans de maintenance et jobs SQL Server Agent
    Par rodbeck dans le forum Administration
    Réponses: 10
    Dernier message: 31/05/2010, 19h31
  2. Possibilité de planning avec SQL Server
    Par LEK dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/07/2008, 08h45
  3. Maintenance des log sql server
    Par bragon dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/03/2008, 14h19
  4. Vérification Lock SQL Server
    Par plutonium719 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/01/2008, 16h49
  5. URGENCE , LOCK SQL SERVER
    Par Hamdi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/09/2005, 14h02

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