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 :

Exécution d'une requête sans stocker les transactions


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 29
    Points
    29
    Par défaut Exécution d'une requête sans stocker les transactions
    bonjour,
    tout est dans le titre.
    En MSSQL 2000 , quelle est l'option ou la commande qui me premet d'éxécuter une requête sans que le serveur ne stock ce qu'il fait dans le journal des trasactions ?

    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 922
    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 922
    Points : 51 717
    Points
    51 717
    Billets dans le blog
    6
    Par défaut
    Il faut utiliser le niveau d'isolation le plus bas, soit par la commande SET ISOLATION LEVEL READ UNCOMMITTED, soit placer des tag NOLOCK dans les requêtes.

    Mais attention aux risques extrêmes de désintégration des données, notamment dans les mises à jour...

    A +

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    Merci j'éssaye tout ça.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    En faite je m'apperçois que je n'ai peut pas été très clair...
    Je veux faire de l'insert en base sans que la transcation soit stockée dans le journal des transcations pourquoi me direz vous.
    Car je manipule des bases assez conséquentes (48 Go avec 90 millions d'enreg et tous dans la même table , je sais c'est pourri , mais je ne sui pas à l'origine de cette belle m.....), et je suis en train de les découper par ans en faisant des éxports (une année = +/- 15 millions d'enreg).
    Pour des questions de rapidité d'éxécution , j'aimerais que l'insert se fasse sans sauvegarde de la transaction...car quand je vois la taille du, journal des transactions à la fin (20 Go pour l'insert de 6 mois) , je pense qu'une bonne partie de la transactions est utilisée par le remplissage du journal...
    Ensuite je le vide avec les commandes qui vont bien en moins de 2 secondes , donc si je pouvais éviter de le remplir...

    si quelqu'un a la solution ?

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 922
    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 922
    Points : 51 717
    Points
    51 717
    Billets dans le blog
    6
    Par défaut
    Il est strictement impossible de se passer du JT pour la mise à jour des données (INSERT, UPDATE, DELETE... ALTER...).
    Et cela d'ailleurs quelque soit le SGBDR. Sinon, passez par des fichiers COBOL. C'est ce qu'il y a de plus rapide !

    Mais en revanche vous devez faire le menage régulièrement du JT.
    Pour cela, si vous trouvez qu'il grossit trop, il faut le "SHRINKER". Pour le shrinker, il faut préalablement le sauvegarder...

    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/sqlserver/log/

    Mais compte tenu du volume de vos bases, je vous invite à suivre d'urgence un cours d'administration de MS SQL Server. Car avec un tel volume de données, si vous perdez la base, ce qui est facile à faire quand on ne maitrise pas la chose, je ne vous promet plus aucun avenir dans le monde informatique. Pensez que les données, c'est un capital très important pour l'entreprise !
    Certaines entreprises sont mortes à la suite de la perte de leurs données informatiques. Voir l'étude consacré à ce sujet après les attaques terroristes du 11 septembre dans SQL mag.

    A +

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    merci pour vos conseils , enfaite je manipule ce genre de bases depuis assez longtemps déjà, je maitrise plus ou moins correctement toutes les procédures de sauvegardes d'optimasations et autres.
    j'ai plus qu'à mon habitude été confronté à des bases supsectes...et j'ai appris à parer ce genre d'éventualité..

    toutes mes bases , sont des bases "de productions" donc les fichiers sont figés et sauvegardés sur des suports différents et au moins en trois éxemplaires...car avec le temps je me suis apperçus que le plus éfficace était encore de sauvegardes les fichiers en eux même plutôt que de se fier au fichier de backup de MSSQL (encore que de gros progrés est été réalisés depusi la version 7)...
    Et puis j'ai des serveurs de backup qui se répliquent journalièrement via des applicatif éxternes developpés pour....bref je ne suis pas novice , mis je n'ai jamais su si oui ou non on pouvait se passer du journal des transaction , je croyais avoir lu que si....
    sinon pour vide le journal rapidement et éfficacement (sans le sauvegarder car je n'ai pas besoin de revenir en arrière ), je procède comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BACKUP LOG Nomdelabase WITH TRUNCATE_ONLY;
    DBCC SHRINKFILE('nomdufichierlogdelabase');

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 922
    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 922
    Points : 51 717
    Points
    51 717
    Billets dans le blog
    6
    Par défaut
    Je fait du conseil et de l'audit sur MS SQL Server depuis maintenant plus de 10 ans et je travaille sur des volume conséquent (plus de 1 To). A partir de la V 2000, je n'ai jamais eu un cas de corruption de données qui ne soit pas soit un cas de fausse manip, soit une perte de disque.

    Encore faut-il mettre en place les bonnes méthodes.

    A +

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/08/2012, 16h28
  2. [Toutes versions] Connaître les champs d'une requête sans l'exécuter
    Par guidav dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/12/2011, 14h58
  3. [ODBC] Exécuter une requête et afficher les résultats
    Par LawKnight dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/04/2009, 00h47
  4. Réponses: 6
    Dernier message: 15/09/2008, 23h00

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