Skillnad mellan visning och materialiserad vy

Anonim

Visa vs materialiserad vy

välj * från visningsnamn

Visa

Som tidigare nämnts är det en virtuell tabell som döljer en vald fråga. Dessa valda frågor är inte exekverade. När vi utför ett valda uttalande från en vy utförs det valda uttalandet som ligger inne i visningskroppen. Låt oss anta det valda uttalandet av visningskroppen som ett mycket komplicerat uttalande. Så när det körs tar det lite tid att genomföra (relativt mer tid). Dessutom använder visningen mycket litet utrymme för att lagra sig själv. Det beror på att det bara har ett utvalt uttalande som innehåll.

Materialiserad vy (Mview)

Detta är en speciell typ av vy. Mviews skapas när vi har prestationsproblem med visningar. När vi skapar en mview, exekverar den sin valda fråga och lagrar sin produktion som en snapshot-tabell. När vi begär data från Mview behöver den inte utföra sitt valda uttalande. Det ger utmatningen från sitt ögonblicksbord. Därför är exekveringstiden för mview mindre än visning (för samma valda uttalande). Mvvisningar kan emellertid inte användas hela tiden, eftersom det visar samma utmatning, som lagras som en stillbilds tabell. Vi ska uppdatera mviewen för att få sitt senaste resultatuppsättning.

Vad är skillnaden mellan Visa och Mview ?

1. Mview lagrar alltid sin produktion som en stillbilds tabell när den är skapad, men visning skapar inte några tabeller.

2. View behöver inte stort utrymme för att lagra innehållet, men mview behöver relativt större utrymme än en vy för att lagra innehållet (som en snapshot-tabell).

3. Visa tar större körtid, men mview tar mindre körtid än visningar (för samma valda uttalande).

4. Mvvisningar måste uppdateras för att få de senaste uppgifterna, men synpunkter ger alltid sina senaste data.

5. Schemat behöver "skapa materialiserad vy" privilegium för att skapa mvvisningar, och för visningar behöver den "skapa visa" privilegium.

6. Indexer kan skapas på mviews för att få mer prestanda, men index kan inte skapas på visningar.