|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre expérimenté
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 389 ![]() |
Bonjour,
Je suis en train d'exécuter une requête de type PIVOT Code :
et je tombe en erreur ORA-01555 Code :
Quelqu'un peut m'expliquer précisément le fonctionnement de ceux-ci ? est-ce qu'ils sont mis en oeuvre lors d'opération particulières (type PIVOT/ UNPIVOT) ? Merci d'avance pour vos réponses éclairées
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
||||
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() ![]() Franck PachotConsultant DBA en Suisse (Trivadis SA) Inscription : novembre 2007 Messages : 997 ![]() |
Citation:
Lorsque le select rencontre une modification faite par une autre session, non encore commitée, ou commitée mais après le debut de notre SELECT, alors Oracle va aller voir l'image antérieure des données - grâce à l'UNDO stocké dans les rollback segments. Si vous avez des requêtes longues qui listent des données en cours de modification, il peut être nécessaire d'augmenter l' UNDO_RETENTION. Cordialement, Franck.
__________________
A lire sur mon blog Oracle - Articles d'Experts des articles traduits en français de Jonathan Lewis, Tom Kyte, Doug Burns, Cary Millsap, Greg Rahn ...
|
|
|
10
|
|
|
#3 | |
|
Expert Confirmé
![]() Inscription : août 2008 Messages : 1 690 ![]() |
A lire impérativement :
Data Concurrency and Consistency Citation:
|
|
|
|
10
|
|
|
#4 | |
|
Membre expérimenté
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 389 ![]() |
Merci pour cette réponse
Citation:
En fait, ma problématique est la suivante : Pour des besoins de reporting, et afin de ne pas charger inutilement la machine et la BDD, cette requête fait partie d'une requête plus complète qui crée toute les heures une vue matérialisée; cette dernière étant utilisée par l'outil de BI Business Object (c'est un "pseudo-datamart", avec les inconvénient inhérent aux snapshots : pas d'index, ni de partition, donc accès non optimisés ... ). Je me demandais s'il existait un ordre spécifique SQL permettant de bypasser la sécurité du consistent read, et donc de s'affranchir de la contrainte des rollback segment. Bien sur le risque est d'obtenir des données incohérentes, car ne prenant opas en compte les derniers raffraichissement, mais c'est un risque qui est parfaitement tolérable car la marge d'erreur sur ces reporting sera relativement faible. Si ce n'est pas le cas, quelles sont les pistes de contournement possibles ? J'en vois personnellement plusieurs :
Enfin, si aucune solution native Oracle n'st stisfaisante, il reste toujours la solution de l'ETL, mais là, on par sur d'autre contraintes d'ordre budgétaire, et de supervision, pour une application qui, elle-même, fait déjà de la supervision ...
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 389 ![]() |
Je viens de lire le lien posté par skuatamad.
Est ce que le SELECT ... AS OF ... (que je n'ai jamais utilisé) ne résoudrait pas mon problème ? Merci pour votre réactivité
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 424 ![]() |
Salut,
1) AS OF TIMESTAMP utilise justement l'undo. Ca donne une lecture consistante... dans le passé, donc c'est encore pire dans ton cas. 2) Impossible de bypasser la lecture consistante, c'est un mécanisme de base. 3) decode au lieu de PIVOT... la remarque est intéressante : de manière générale, optimiser la requête peut être une piste. Il faut voir le plan d'exécution. En fait, pour aller plus loin, s'il s'agit d'une démarche de supervision, il y aurait peut être moyen de cibler les données modifiées ? Date de modif indexée par exemple ? Ou alors justement travailler sur le rafraîchissement de la vue matérialisée pour qu'elle capte le delta ? 4) Je dirais que ce n'est pas le nombre de rollback segments alloués à la transaction qu'il faut augmenter, mais la taille de l'undo de manière générale (combinée avec une augmentation de l'undo retention) 5) ETL : c'est bien pour ça qu'il y a des datawarehouse, parce que le reporting cohabite assez mal avec une base transactionnelle...
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
|
30
|
|
|
#7 | |
|
Membre expérimenté
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 389 ![]() |
Merci Pacman pour tes réponses
Je n'ai pas chomé durant ce temps et j'ai essayé de me cultiver sur le sujet, que je connaissais très mal, des vues matérialisées. Ca m'a permis de tordre le cou à certaine idées reçues que j'avais acquises, par méconnaissance du sujet.
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com