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 :

change tracking clean up


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 156
    Points : 25 075
    Points
    25 075
    Par défaut change tracking clean up
    Bonjour,

    Je viens de découvrir le change tracking qui pourrait m'être utile pour créer mon propre système de synchronisation.

    via select from changetable on peut connaitre les lignes modifiées/supprimées, par contre je souhaiterais pouvoir supprimer des lignes de cette vue

    l'option auto cleanup n'est pas géniale à mon gout, si on met trop peu de temps on risque de perdre des modifs, si on met trop long ca fait du stockage pour rien et on est obligé de gérer un numéro de version

    si on disable le clean up auto il ne semble pas y avoir un moyen de le gérer manuellement à part via disable puis re enable le change tracking sur la table, et là je pense que je risque d'avoir une potentielle perte de données ...

    quelqu'un aurait une idée de comment je pourrais m'en sortir ? un nom de table système où l'on peut taper dedans ?

    sql server profiler ne semble pas intercepter ce qui se passe pour marquer les modifs ou les ressortir via change table, pourtant si on disable puis re enable le change tracking dans une transaction qu'on rollback tout reste bien dedans, donc ca doit taper dans des tables

    merci
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #2
    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
    Pas d'option manuelle pour cleaner les données stockées les tables systèmes. Tu vas être obligé de jouer avec la tâche de cleanup de cette fonctionnalité.

    si on met trop peu de temps on risque de perdre des modifs, si on met trop long ca fait du stockage pour rien et on est obligé de gérer un numéro de version
    Tu peux temporairement désactiver le cleanup en cas de problème.

    ++

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 156
    Points : 25 075
    Points
    25 075
    Par défaut
    J'ai finalement trouvé une solution

    avec ceci la table me semble bien verrouillée tant que le commit n'est pas passé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    begin tran 
    alter table t disable change_tracking  
    -- une pause ici, exécution en 2x dans management studio
    alter table t enable change_tracking  
    commit tran
    testé avec un insert et un update depuis une autre fenetre de management studio et ca attend
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 156
    Points : 25 075
    Points
    25 075
    Par défaut
    en fait il me manque quand même un truc, car je dois lire les données avant de disable, et entre la lecture et le disable il ne faut pas non plus qu'il y a modification sur la table

    il y a un moyen de verrouiller un table ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  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
    Il n'y a pas tant d'impact disque que ça, on ne stocke pas les données modifiées contrairement au CDC, juste la valeur de clé primaire, et quelques informations contextuelles dans la table de tracking. Je ne vois pas pourquoi tu ne veux pas laisser la rétention à 2j par défaut. C'est plutôt une question de performances, car CT est synchrone avec la transaction. Si le système est essentiellement du TP, ça risque de ralentir un peu le nombre de transaction / sec.
    David B.

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 156
    Points : 25 075
    Points
    25 075
    Par défaut
    Citation Envoyé par dbaffaleuf Voir le message
    Je ne vois pas pourquoi tu ne veux pas laisser la rétention à 2j par défaut.
    en cas de coupure d'internet ca perd des données
    avec le clean up auto on est obligé de gérer le numéro de version, ca fait plus de dev

    Citation Envoyé par dbaffaleuf Voir le message
    C'est plutôt une question de performances, car CT est synchrone avec la transaction. Si le système est essentiellement du TP, ça risque de ralentir un peu le nombre de transaction / sec.
    TP = ?


    je vais me reconcentrer sur la problématique de départ parce qu'il y a surement d'autres solutions
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. BLOCK CHANGE TRACKING sur une base NOARCHIVELOG
    Par Le-DOC dans le forum Recovery Manager
    Réponses: 2
    Dernier message: 27/11/2014, 09h39
  2. Change tracking - retour d'experience
    Par jdmbh dans le forum Microsoft BI
    Réponses: 1
    Dernier message: 31/03/2014, 15h32
  3. Existe-t-il une fonction type track changes pour du html ?
    Par martha20 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 06/01/2011, 21h01
  4. Activation track change excel VB.Net
    Par Abdeslam_Neo dans le forum VB.NET
    Réponses: 0
    Dernier message: 22/03/2010, 22h52
  5. Track change d'un texte sous Word amélioré
    Par christiansonge dans le forum VBA Word
    Réponses: 2
    Dernier message: 18/02/2009, 00h13

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