Bonjour,
J'ai une vue matérialisé MV1 définie par un group by sur T1
1 2 3 4 5 6 7 8 9 10 11
| CREATE MATERIALIZED VIEW MV1
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
WITH PRIMARY KEY
AS
SELECT XXXXXX, count(*) FROM T1
WHERE PLOP=12
GROUP BY XXXXXX;
CREATE OR REPLACE PUBLIC SYNONYM DTW_MV1 FOR MV1;
CREATE INDEX PLOP ON MV1 (PLOP); |
Refresh PL/SQL :
dbms_mview.REFRESH('DTW_.' || p_NOM_SNAP);
Il y a de nombreux delete et insert sur T1. Donc certainement pendant le refresh.
Temps de refresh, plus de 5H.
Nbre de lignes de T1 environ 10 millions.
Le refresh fonctionne 1 fois sur 10 erreur :
L'enregistrement que vous essayez de modifier ne correspond plus à
la version existante.
Un autre utilisateur a effectué des modifications depuis votre dernière sélection.
Je me demande si cela correspond à
The Selected Record Has Been Modified by Another User since it was retrieved
Est ce qu'il peut y avoir des solutions existantes pour résoudre le problème ?
Je m'en doute mais pouvez vous me confirmer le fait que les insert et delete fond planter le refresh ?
Est ce qu'il ne faudrait pas mettre des locks sur T1 pendant le refresh ?
Merci d'avance de votre aide.
Partager