Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/04/2008, 14h52   #1
Membre à l'essai
 
Inscription : mars 2004
Messages : 122
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 122
Points : 20
Points : 20
Par défaut questions sur materialized view

Bonjour,

Je pense utilisé les materialized view pour un de mes traitement mais comme je ne les ai jamais utilisé, je voulais avoir votre avis.

Je dois faire une extraction (flat file) à toute les semaines de 3 select qui ont un lien entre eux. je sais qu'on peut individuellement dire à quelle heure on veut le rafraichissement des données mais dans mon cas, il est tres important que les 3 tables soit rafraichis en meme temps pour garder la consistance des données. Est-ce qu'il y a un moyen de dire que le rafraichissement doit etre fait en meme temps pour les 3 tables?

Je sais aussi qu'il y a un option pour allez chercher le delta depuis la derniere fois... c'est solide ca? est-ce qu'il y a un moyen de lui donner depuis quand (quel jour ou heure ) on veut le delta advenant un problème en changeant un parametre par exemple.

merci
juin29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 11h08   #2
Membre éclairé
 
Avatar de boussafi
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2007
Messages : 342
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : septembre 2007
Messages : 342
Points : 397
Points : 397
Envoyer un message via Yahoo à boussafi Envoyer un message via Skype™ à boussafi
bonjour
les vues materialisées ne sont pas utiles pour une base de données transactionnelles(c-à-d:pleinne de insert into et update).
on ne peut pas reffaichir une tables, on raffraichit la vue materialisée qui utilise les trois tables.
les vue materialisées sont utilisées surtout pour les rapports pour accelerer l'affichage; ou bien par exemple; lancement d'un procedure qui utile une vue complexe et lourde sinon elle sera inutile.
Bon courage
boussafi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 15h30   #3
Membre à l'essai
 
Inscription : mars 2004
Messages : 122
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 122
Points : 20
Points : 20
Ok je vais préciser mon besoin. Les flat file que je dois extraire sont en fait un delta des tables du schéma mais dénormalisé. Alors je me disais qu'en utilisant une vue matérialisé, ca m'éviterait d'avoir à scripter la création de table temporaire pour les extraires par la suite. Je ne veux pas utilisé directement des vues et les extraire ensuite... j'ai déjà eu de gros problème de performance à ce niveau... Alors je me disais que c'était le meilleur des 2 monde?

ce n'est donc vraiment pas fait pour ca?
juin29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 15h36   #4
Membre à l'essai
 
Inscription : mars 2004
Messages : 122
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 122
Points : 20
Points : 20
une petite précision sur ma question initiale. Je ne veux pas rafraichir les table de mon schéma... je voudrais rafraichir plusieurs vue matérialiser en meme temps pour ne perdre aucune donnée car elles ont un lien entre elles...

est-ce qu'on peut faire ca... et etre sur que le rafraichissement est fait dans la meme seconde?
juin29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 15h00   #5
Membre à l'essai
 
Inscription : mars 2004
Messages : 122
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 122
Points : 20
Points : 20
Rebonjour,
Je lis pas mal là dessus depuis 2 jours et ce que j'en comprends c'est que c'est surtout pour du reporting et non pour faire du traitement... mais si le traitement que j'ai à faire c'est une extraction de cette vue matérialiser... croyez-vous que c'est viable... conceptuellement, les vues matérialisé peuvent-elle supporté un traitement d'extraction (j'ose croire que oui) ...

J'ai aussi lu un peu sur les log des materialized view... j'ai lu que c'était des objet de la bd... ce que j'en comprend c'est que ce serait logger dans une table spécifiquement créé pour cette vue matérialisé? Ca voudrait dire que si j'ai 10 tables matérialisés à créer, ca créera aussi 10 table de log?? si c'est le cas... ca me prouverait que ce n'est pas fait pour ce que je veux faire je crois...

merci
juin29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 16h02   #6
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
En 10g, essayez d'utiliser DBMS_MVIEW.REFRESH avec le paramètre atomic_refresh à TRUE:

Citation:
atomic_refresh
If this parameter is set to true, then the list of materialized views is refreshed in a single transaction. All of the refreshed materialized views are updated to a single point in time. If the refresh fails for any of the materialized views, none of the materialized views are updated.

If this parameter is set to false, then each of the materialized views is refreshed in a separate transaction.
En 8i ou 9i, essayez le snapshot group.

PS: non testé.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 20h08   #7
Membre à l'essai
 
Inscription : mars 2004
Messages : 122
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 122
Points : 20
Points : 20
Ha merci je ne trouvais cet info null part... je suis en 9i en passant.

Avez-vous une idée pour ce que j'expliquais un peu plus haut pour les logs... est-ce une table de log par vue matérialisé ou une table de log pour toute les tables du schéma...

et est-ce que vous croyez que c'est une bonne idée de faire du traitement sur des materialized view?

merci
juin29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 10h29   #8
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
En général, il y un a materialized view log par table mais le materialized view log n'est pas indispensable: il est nécessaire si on veut faire un refresh fast.

L'utilisation de vues matérialisées (MV) est une bonne idée .. si elle correspond à vos besoins et que l'on prend en compte les avantages et les inconvénients de l'approche: les requêtes peuvent être nettement plus rapides sur les MV à condition d'accepter les coûts nécessaires de création et de rafraîchissement (espace disque, temps machine).
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 17h17   #9
Membre à l'essai
 
Inscription : mars 2004
Messages : 122
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 122
Points : 20
Points : 20
Citation:
les requêtes peuvent être nettement plus rapides sur les MV à condition d'accepter les coûts nécessaires de création et de rafraîchissement
Juste pour être certain, quand tu dis que ca peut etre nettement plus rapide, c'est en comparaison avec quoi? des vues normale, des tables ...? Est-ce que tu dis ca car les MV sont plus performante en général que des vue ou des tables normal ou si tu as dis ca dans un contexte particulier...

merci
juin29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2008, 09h53   #10
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
un MV stocke le résultat de la vue quand la vue exécute la requête à chaque interrogation, en ce sens la MV est plus performante qu'une vue si tant est que la requête soit un minimum complexe (sur SELECT * FROM TABLE par exemple, ça n'a aucun intérêt). Ceci dit, une MV se rafraichira moins vite que l'exécution de la vue.

Donc la MV est plus rapide à l'interrogation mais pour optimiser le refresh là faudra d'orienter peut-être vers les MV logs pour faire un FAST REFRESH.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2008, 21h00   #11
Membre à l'essai
 
Inscription : mars 2004
Messages : 122
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 122
Points : 20
Points : 20
ok je comprend le point, c'est ce que je pensais d'ailleurs...

J'aimerais ca avoir votre avis maintenant sur ce que j'ai à faire. Je dois convertir une application qui extrait des tables en flat_file. Actuellement, je fais un create table as select .... une fois créé cette table est extraite. Le problème c'est qu'à chaque semaine, je drop les table, je fais un create table as select... (parfois assez complexe) et je l'extrais. Maintenant, avec les Materialized view, je voyais l'opportunité d'utilisé les nouvelles fonctionnalité d'oracle. Avec les MV, j'éviterais toute la partie script de creation de table et je cédulerais un refresh à la place. Ca serait sans doute moins couteux non? À moins qu'il y ait une subtilité que je ne vois pas...

En cas de problème lors du rafraichissement des vue... est-ce que c'est facilement identifiable qu'il y a eu une erreur... il faut que je puisse évidemment le trapper... J'imagine qu'avec les tables log je pourrais voir ca... mais je me demandais si c'était facile et surtout si ca trappe tout les genre d'erreur autant data que physique.

merci encore
juin29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h31.


 
 
 
 
Partenaires

Hébergement Web