sql >> Database >  >> RDS >> Oracle

Oracle - Gematerialiseerde weergave nog steeds toegankelijk tijdens volledige vernieuwing. Hoe werkt dit?

Er zijn twee verschillende manieren waarop een volledige verversing kan plaatsvinden:een atomaire verversing of een niet-atomaire verversing. Een atomaire vernieuwing geeft eenvoudigweg een DELETE om alle rijen in de gematerialiseerde weergave te verwijderen en voert vervolgens een INSERT uit om de nieuwe gegevens in te voegen. Dit is allemaal binnen een enkele transactie, dus Oracle's standaard multi-versie leesconsistentie-architectuur laat Oracle andere sessies de oude gegevens tonen totdat de vernieuwing is voltooid. Bij een niet-atomaire verversing doet Oracle een TRUNCATE op de gematerialiseerde weergave en vervolgens een INSERT met een direct pad om de nieuwe gegevens in te voegen. Dit is aanzienlijk efficiënter, maar aangezien TRUNCATE DDL is, betekent dit dat de oude gegevens tijdens het vernieuwen niet zichtbaar zijn voor andere sessies.




  1. Relationele databases

  2. INDIA, STD Code Finder-script in PHP, MYSQL, JQUERY

  3. Hoe schrijf je een beperking met betrekking tot een maximaal aantal rijen in postgresql?

  4. Resultaten van twee query's combineren in een enkele dataset