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

SQL Oracle Discussion :

Suivre les changements sur une vue


Sujet :

SQL Oracle

  1. #1
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut Suivre les changements sur une vue
    Bonsoir,
    je travailles sous oracle 10g et je possède la problématique suivante : j'ai comme base de travail plusieurs vues. Je voulais savoir s'il est possible de détecter lorsque le contenu de ces vues viens à varier ?
    La possibilité de rajouter des triggers sur chaque table impliqués dans ces vues n'est pas possible car cela entraine pour nous des problèmes de perfs et de maintenance.
    Des triggers sur vue ça existe ? En attendant, la seule idée que j'ai et de sotcker le contenu d'une vue à un temps T puis d'effectuer des vérifications (minus) à intervalle réguliers..

    Enfin bon si quelqu'un a déjà eu à gérer ce type de problématique je suis ouvert à toute proposition.
    Merci,
    Lek.

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Créez vos vues avec des scripts SQL gérés avec un utilitaire de gestion des versions (Source safe, Subversion, VCS, etc.)

  3. #3
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut
    Merci, mais ce n'est pas le sql des vues lui même que je dois suivre mais bel et bien le résultat (les lignes) que j'obtient lorsque je les interroge.

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Donc, j'avais mal compris.
    Les vues (sauf les materialized vue) ne possèdent pas des données. Donc audit ou triggers ou vues materialisées.

  5. #5
    Membre expérimenté Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Par défaut
    salut, tu dois utilisé les vues materialisés ou les triggers. sinon tu peux pas faire ça.

  6. #6
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !

    Mongilotti, en parcourant les précédents posts, je pensais que tu étais un bot qui dit "merci de marquer ce sujet comme résolu".

    Mais je suis rassuré, tu es également capable de répéter la dernière phrase postée...

  7. #7
    Membre expérimenté Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Par défaut
    salut,
    Pacmann les gens on toujours besoin de plus d'une réponse pour qu'il soit rassurer.



  8. #8
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut
    Ok merci,
    donc mon problème reste insoluble car pour les vues matérialisée :
    bien que techniquement possible, faire des triggers sur des read-only materialized views (ce qui serait le besoin) n’est pas recommandé.
    (visiblement, pas trop compatible / effets de bords avec ce que fait Oracle pour procéder au « refresh » de ces vues, cf ci-dessous)
    Extrait de http://asktom.oracle.com/pls/asktom/...89600346945045 :


    Triggers on a read only materialized view might appear to work - but you cannot rely on them working :
    An update of a row in a materialized view might be done as a DELETE+INSERT.
    A refresh of a materialized view might involve a delete + insert of every row.
    A refresh might involve a truncate plus direct path load of ever row.

    (the last two will probably happen sometime, you would lose anything your trigger had done in the past)


    You do not know how we refresh, it would be a very shaky proposition to have a trigger on a read only materialized view - I would not recommend it.
    Utiliser des triggers ne m'est pas possible car beaucoup trop de tables (400) utilisant parfois des modifications/insertions en masse sont impliquées et volontairement on ne m'a permis de travailler qu'à partir de vues plus ou moins complexes interrogeant ces différentes tables : donc on a peur des problèmes de maintenance et de perf.

    J'ai aussi explorer rapidement d'autres solutions comme oracle CDC (trop complexe à mettre en place), flashback query (historique que nous aurions limité dans le temps et non sure : en cas de besoin d'espace disque/memoire oracle privilégie son travail ce qui parait normal)....

    Je pense que je vais finir par me construire des tables d'histoques de fortune que je raffraichirais régulièrement...

    Mais merci tout de même pour votre aide.

  9. #9
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par LEK Voir le message
    ...
    Je pense que je vais finir par me construire des tables d'histoques de fortune que je raffraichirais régulièrement...
    J'avais pensé aux vues materialisée pour remplacer vos "tables d'histoques de fortune".

  10. #10
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut
    Oui tout à fait, j'envisage un fonctionnement similaire mais j'aurais le loisir de stocker plusieurs versions datées : ainsi je pourrais avoir des options du type comparer la version n à la version n-2....
    Grosso modo mon besoin est trés proches sinon similaire à de la gestion de version de fichier : je dois pouvoir à l'instant t dire si les lignes restituées par la vue V sont différentes de celles données lors du requêtage en t-1 : et cerise sur le gâteau si je peux donner le diff exact...

  11. #11
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Je dirai plutôt qu'il faut faire une historisation fine de vos données, au niveau des tables, mais c'est plutôt coûteux comme procédé sur une base OLTP.

    Sur une base dédiée type DWH avec un chargement quotidien, c'est moins coûteux.

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/06/2015, 18h54
  2. Exploiter les données d'une vue sur SQLServer
    Par siro1 dans le forum WebDev
    Réponses: 9
    Dernier message: 15/01/2013, 01h20
  3. limiter les requêtes /le CPU sur une vue db2
    Par batou22003 dans le forum DB2
    Réponses: 4
    Dernier message: 08/11/2011, 18h43
  4. [reseaux] Lister les processus sur une machine donnée
    Par BEAUJAULT dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 29/07/2004, 16h55
  5. delete sur une vue: rule
    Par Bouboubou dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 18/05/2004, 19h58

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