Изглед срещу материализиран изглед
Изгледите и материализираните изгледи (mviews) са два типа обекти на бази данни на Oracle. И двата обекта препращат към заявки за избор. Тези заявки за избор действат като виртуални таблици. Обикновено изгледите и mviews се отнасят до големи заявки за избор, които имат набор от съединения. Следователно едно от основните предимства на изгледите е, че можем да съхраняваме сложни заявки за избор като изгледи. Следователно можем да скрием логиката зад заявките за избор от крайните потребители. Когато трябва да изпълним сложния оператор за избор, просто трябва да изпълним
изберетеот име на изглед
Преглед
Както споменахме по-горе, изгледът е виртуална таблица, която скрива заявка за избор. Тези заявки за избор не се изпълняват предварително. Когато изпълним оператор select от изглед, той изпълнява оператора select, който е вътре в тялото на изгледа. Нека приемем оператора select на тялото на изгледа като много сложен оператор. Така че, когато се изпълнява, отнема известно време за изпълнение (относително повече време). В допълнение, view използва много малко пространство, за да се съхранява. Това е така, защото има само оператор select като съдържание.
Материализиран изглед (Mview)
Това е специален тип изглед. Mviews се създават, когато имаме проблеми с производителността на изгледите. Когато създаваме mview, той изпълнява своята заявка за избор и съхранява изхода си като таблица със снимки. Когато поискаме данни от Mview, той не трябва да изпълнява отново оператора си за избор. Той дава изхода от своята таблица за моментни снимки. Следователно времето за изпълнение на mview е по-малко от view (за същия оператор select). Въпреки това, mviews не може да се използва през цялото време, тъй като показва един и същ изход, който се съхранява като таблица със снимки. Трябва да опресним mview, за да получим последния му набор от резултати.
Каква е разликата между View и Mview?
1. Mview винаги съхранява изхода си като таблица за моментни снимки, когато е създаден, но view не създава никакви таблици.
2. View не се нуждае от голямо пространство, за да съхранява съдържанието си, но mview се нуждае от относително по-голямо пространство от изгледа, за да съхранява съдържанието си (като таблица със снимки).
3. View отнема по-дълго време за изпълнение, но mview отнема по-малко време за изпълнение от изгледите (за същия оператор select).
4. Mviews трябва да бъдат опреснени, за да получат най-новите си данни, но изгледите винаги дават най-новите си данни.
5. Схемата се нуждае от привилегия „създаване на материализиран изглед“, за да създава mviews, а за изгледи се нуждае от привилегия „създаване на изглед“.
6. Индекси могат да се създават на mviews, за да се постигне по-голяма производителност, но индекси не могат да се създават на изгледи.