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

Sybase Discussion :

Historisation de bases?


Sujet :

Sybase

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 293
    Points : 182
    Points
    182
    Par défaut Historisation de bases?
    Bonjours, dans les bases que j'ai (sybase pas oracle) je vais devoir historiser un certain nombre de tables en fonction des dates d'insert et/ou update. Que me conseillez- vous comme action pour réaliser cela si qq'un a déja fait ce type de choses.
    Select into sur une autre bases et delete des rows recupéré avant ?? sélection de bases tampon avec extraction via BCP ?? enfin si vous avez une idée, merci de vos conseils.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Il y a évidemment plusieurs possibilité.

    Une technique consiste à créer une vue qui couvre la partie de la table que l'on veux archiver, faire un bcp out de la vue, puis de deleter les lignes (soit directement dans la vue, soit avec une jointure entre la vue et la table de base).

    Si le volume de ligne à effacer est important il est conseillé de faire les deletes dans une boucle pour éviter de faire exploser le transaction log:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    declare @rows int
     
    select @rows = 10000
    set rowcount 10000
     
    while @rows > 0
    begin
        delete from table where condition...
        select @rows = @@rowcount
    end
    set rowcount 0
    On notera aussi que Sybase propose un produit pour gérer ce genre de chose ("Dynamic Archive"), mais c'est peut-être trop pour un besoin simple d'archivage occasionel.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 293
    Points : 182
    Points
    182
    Par défaut
    Merci c'est bien ce que je pensais faire.
    Merci de me faire partager ton point de vu.
    cdlt

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

Discussions similaires

  1. Historisation de la base d'Audit
    Par Bandit69330 dans le forum Cognos
    Réponses: 1
    Dernier message: 04/03/2013, 17h37
  2. [Débutant] transfert des données d'une base données mysql vers logiciel d'historisation de données
    Par thierry2012 dans le forum Accès aux données
    Réponses: 0
    Dernier message: 29/03/2012, 17h13
  3. Réponses: 14
    Dernier message: 08/02/2011, 10h39
  4. Réponses: 1
    Dernier message: 02/02/2011, 15h11
  5. Historisation d'enregitrements dans une base de données
    Par dvTEAMLOG dans le forum Développement de jobs
    Réponses: 10
    Dernier message: 28/05/2009, 15h16

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