sql >> Databasteknik >  >> RDS >> Oracle

Snabb uppdatering vid bekräftelse av materialiserad vy

Jag vet inte om problemet kvarstår, men när jag tittade på artikeln du angav, märkte jag något (som kanske bara är lösningen här):

ON COMMIT Refresh

En materialiserad vy kan uppdateras automatiskt med metoden ON COMMIT. Därför, närhelst en transaktion genomförs som har uppdaterat tabellerna där en materialiserad vy är definierad, återspeglas dessa ändringar automatiskt i den materialiserade vyn. Fördelen med att använda detta tillvägagångssätt är att du aldrig behöver komma ihåg att uppdatera den materialiserade vyn. Den enda nackdelen är att tiden som krävs för att slutföra åtagandet kommer att bli något längre på grund av den extra bearbetningen som krävs. Men i ett datalager bör detta inte vara ett problem eftersom det är osannolikt att det finns samtidiga processer som försöker uppdatera samma tabell.

  • Lägg märke till den fetstilta linjen.

Då har vi:

Tabell 7-1 Metoder för uppdatering på begäran

Uppdatera Alternativ Parameter BeskrivningKOMPLETT C Uppdaterar genom att räkna om den definierande frågan av den materialiserade synen.

SNABB F Uppdaterar genom att stegvis tillämpa ändringar på den materialiserade vyn . För lokala materialiserade vyer väljer den den uppdateringsmetod som uppskattas av optimeraren vara mest effektiv. De övervägda uppdateringsmetoderna är loggbaserade FAST och FAST_PCT.

FAST_PCT P Uppdaterar genom att räkna om raderna i den materialiserade vyn som påverkas av ändrade partitioner i detaljtabellerna.

KRAFT ? Försöker en snabb uppdatering. Om det inte är möjligt gör den en fullständig uppdatering. För lokala materialiserade vyer väljer den den uppdateringsmetod som uppskattas av optimeraren vara mest effektiv. De övervägda uppdateringsmetoderna är loggbaserade FAST, FAST_PCT och COMPLETE.

  • Lägg märke till de feta linjerna.
  • Jag föredrar personligen FORCE-alternativet.

Kan du berätta om detta inträffar igen efter en tid (beroende på parametrarna för DB och maskinen den körs på, så jag kan inte ens tipsa dig om hur mycket)?

När snabb uppdatering är möjlig

Alla materialiserade vyer kanske inte kan uppdateras snabbt. Använd därför paketet DBMS_MVIEW.EXPLAIN_MVIEW för att avgöra vilka uppdateringsmetoder som är tillgängliga för en materialiserad vy.

Om du inte är säker på hur du gör en materialiserad vy snabbuppdateringsbar kan du använda DBMS_ADVISOR.TUNE_MVIEW procedur, som tillhandahåller ett skript som innehåller de satser som krävs för att skapa en snabb uppdateringsbar materialiserad vy.

Skål



  1. Sammanfoga kolumnvärden till en kommaseparerad lista

  2. Timestampable fungerar inte med ORM- och PostgreSQL-databaser

  3. MySQL Query körs men ger undantag

  4. SQLAlchemy SELECT WITH sats/sats (pgsql)