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 :

Fichier de journalisation trop gros


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 72
    Points : 48
    Points
    48
    Par défaut Fichier de journalisation trop gros
    salut, j'ai un petit souci, je voudrais savoir s'il est possible de désactiver la journalisation avant de faire un delete ?
    le probleme c'est que je dois faire un delete sur une table (des centaines de milliers de lignes ) et je ne peux pas utiliser truncate parce que j'ai des contraintes, je suis obligé de passer par delete pour faire du cascading.

    alors j'ai pensé à desactivé le logging momentanement le temps de faire passer mon delete (que je ne voudrais pas se voir logger) puis reactiver la journalisation tout à fait aprés.


    Merci

  2. #2
    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 : 43
    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,

    Ceci est impossible pour une simple et bonne raison : le journal de transaction est le seul garant le l'intégrité transactionnelle de votre base de données.

    La seule solution que je peux vous proposer, qui est très très moche, et à n'utiliser uniquement si vous n'avez pas d'autre solution (je vais me faire taper par d'autres participants mais tanpis), c'est de :

    - passer votre base de données en mode de récupération SIMPLE,
    - supprimer vos lignes par lots de 10 000 par exemple,
    - repasser votre base de données en mode de récupération FULL et d'ne effectuer une sauvegarde juste après ...

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 862
    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 862
    Points : 53 015
    Points
    53 015
    Billets dans le blog
    6
    Par défaut
    je compléterais par :
    sauvegarde avant et après

    A +

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 72
    Points : 48
    Points
    48
    Par défaut
    Merci pour la réponse, je me demandais juste sur le mode Simple ne log pas les deletes ? ou est l'impact de deleter par lot de 10 000 au lieu de deleter toute la table ?

    Merci encore

  5. #5
    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 : 43
    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
    Bonsoir,

    Le mode de récupération SIMPLE journalise toutes les transactions pour assurer l'ACIDité, mais le journal de transaction, dans ce mode, est tronqué à chaque point de contrôle, qui a lieu par défaut toutes les minutes sous SQL Server.

    Pour assurer cette ACIDité, quel que soit le mode de récupération, il faut conserver toutes les données de la transaction : si celle-ici échoue, alors on pourra replacer la base de données dans l'état consistant et logique dans lequel elle se trouvait avant le début de cette transaction.
    C'est cette "conservation" de données qui entraîne le gonflement du fichier du journal de transactions.

    Donc, lorsque vous supprimez 10000 lignes, comme vous "manipulez" moins de données que si vous supprimiez plusieurs millions de lignes, le gonflement du journal est plus faible.

    Si de plus vous passez en mode de récupération SIMPLE, ces données ne sont conservées que pour la durée de la transaction : elles ne sont pas sauvées dans le journal de transaction, et l'espace du log de transaction utilisé précédemment pour conserver les données de votre transaction est immédiatement libéré, pour servir à d'autres transactions.

    C'est pour cette raison que j'ai écrit :

    et à n'utiliser uniquement si vous n'avez pas d'autre solution
    En effet, comme le journal de transaction n'est pas sauvegardé dans le mode SIMPLE de récupération, si un problème survient pendant le DELETE, vous perdrez les modifications effectuées par celui-ci, mais aussi toutes les autres : vous ne pourrez pas revenir en arrière.

    C'est pour cela que SQLPro vous a en plus conseillé de faire une sauvegarde de votre base de données avant d'effectuer le DELETE, car c'est le seul moyen que vous aurez de replacer votre base de données dans un état consistant et logique. Merci SQLPro !

    J'espère que je ne vous ai pas embrouillé
    Si mon post n'est pas clair, n'hésitez pas à revenir

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 72
    Points : 48
    Points
    48
    Par défaut
    merci c'est trés clair et ca m'aide beaucoup

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

Discussions similaires

  1. Taille du Fichier pdf généré trop gros
    Par guizmot dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 14/05/2008, 13h40
  2. [Upload] fichier trop gros : serveur introuvable
    Par Patrick dans le forum Langage
    Réponses: 1
    Dernier message: 16/10/2007, 14h05
  3. [JDOM] Fichier XML trop gros
    Par Mygush dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 06/07/2007, 12h17
  4. Fichier trop gros = réinitialisation
    Par Artusamak dans le forum Langage
    Réponses: 11
    Dernier message: 19/12/2006, 22h25
  5. Fichier texte trop gros pour etre ouvert
    Par tavman dans le forum C++
    Réponses: 5
    Dernier message: 05/10/2005, 00h07

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