sql >> Database teknologi >  >> RDS >> Oracle

Hvad er materialiserede synspunkter?

Selvfølgelig.

En normal visning er en forespørgsel, der definerer en virtuel tabel -- du har faktisk ikke dataene i tabellen, du opretter dem på farten ved at udføre.

En materialiseret visning er en visning, hvor forespørgslen køres, og dataene gemmes i en faktisk tabel.

Dataene i den materialiserede visning bliver opdateret, når du beder dem om det.

Et par use cases:

  • Vi har flere Oracle-instanser, hvor vi ønsker at have stamdataene på én instans, og en rimelig aktuel kopi af dataene på de andre instanser. Vi ønsker ikke at antage, at databaseforbindelserne mellem dem altid vil være oppe og fungere. Så vi opretter materialiserede visninger på de andre forekomster med forespørgsler som select a,b,c from [email protected] og bed dem om at opdatere dagligt.

  • Materialiserede visninger er også nyttige ved omskrivning af forespørgsler. Lad os sige, at du har en faktatabel i et datavarehus med hver bog, der nogensinde er lånt fra et bibliotek, med datoer og lånere. Og at personalet jævnligt gerne vil vide, hvor mange gange en bog er blevet lånt. Byg derefter en materialiseret visning som select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name , indstil den til den opdateringsfrekvens, du ønsker -- normalt opdateringsfrekvensen for selve lageret. Hvis nogen nu kører en forespørgsel som den for en bestemt bog mod book_trans tabel, vil forespørgselsomskrivningskapaciteten i Oracle være smart nok til at se på den materialiserede visning i stedet for at gå gennem de millioner af rækker i book_trans .

Normalt opbygger du materialiserede visninger af ydeevne- og stabilitetsmæssige årsager - ustabile netværk eller laver lange forespørgsler uden for arbejdstid.



  1. Formater tal til 2 decimaler

  2. Fejl:ORA-01704:streng for lang

  3. mysql vælg forskellige rækker i en kommasepareret listekolonne

  4. SSIS-pakken ønsker ikke at hente metadata fra den midlertidige tabel