Ćwiczenia
> Perspektywy w MS SQL Server 2000 > Indeksowanie perspektyw |
![]() ![]() |
||||||
7.3 Indeksowanie perspektyw![]() Perspektywa indeksowana to perspektywa, na której zdefiniowano indeks grupowany (jako że pierwszym indeksem na perspektywie musi być indeks grupowany, zaś następnie możemy tworzyć indeksy niegrupowane). W takim przypadku zbiór danych generowany przez widok jest materializowany i przechowywany w najniższym poziomie stron należących do indeksu, tak jak to ma miesjce w przypadku indeksu grupowanego zdefiniowanego na tabeli. Również operacje modyfikacji danych w indeksowanym widoku odbywają się w podobny sposób, jak w tabelach z indeksami (następuje przebudowanie indeksu). Gdy tworzymy indeks na perspektywie, pojęcie wirtualnej tabeli przestaje być aktualne w odniesieniu do perpektywy, ponieważ teraz perspektywa jest materialnym zbiorem danych przechowywanym w bazie danych. Krok 1 - Jakie wymagania musi spełniać widok, by moża było go indeksować?Widok musi spełniać następujące wymagania, by można było określić na nim indeks grupowany:- w trakcie tworzenia perspektywy muszą być włączone opcje ANSI_NULLS i QUOTED_IDENTIFIER, - w trakcie tworzenia tabel bazowych widoku musi być włączona opcja ANSI_NULLS, - podczas tworzenia widoku (CREATE VIEW) musi zostać użyta opcja SCHEMABINDING, - tylko dwie części nazw (właściciel.obiekt - w normalnej sytuacji nazwy mogą mieć więcej członów) mogą zostać użyte w definicji widoku do odwoływania się do obiektów bazy danych (tabel lub funkcji użytkownika), - jeśli używamy funkcji w definicji widoku, to muszą być to funkcje deterministyczne, - wszystkie nazwy kolumn muszą być jawnie (i tylko raz) określone w widoku (niedopuszczalny jest symbol gwiazdki), - widok nie może zawierać kolumn typów: text, ntext oraz image, - widok nie może zawierać danych z tabel zagnieżdżanych, funkcji zwracających zestawy rekordów, złączeń typu UNION,złączeń zewnętrznych (OUTER JOIN) oraz złączeń tabeli z samą sobą (ang. self join), - polecenie SELECT w definicji widoku nie może zawierać klauzul TOP, ORDER BY, DISTINCT, COMPUTE, COMPUTE BY, HAVING, CUBE oraz ROLLUP, - w poleceniu SELECT w definicji funkcje agregujące mogą wystąpć tylko wtedy, gdy użyta jest klauzula GROUP BY; nie mogą zostać użyte złożone funkcje agregujące, czyli: AVG, MIN, MAX, STDEV, STDEVP, VAR oraz VARP, - nie można użyć funkcji COUNT(*) (ale można COUNT_BIG(*)).
Krok 2 - Tworzenie indeksu na perspektywieTworzenie indeksu na perspektywie odbywa się tak samo, jak to ma miejsce w przypadku tabel (patrz lekcja 5.2 Tworzenie indeksów).Przykład:
Krok 3 - Zalety i wady indeksowanych perspektywGłówną zaletą indeksowanych perspektyw jest zwiększona szybkość wyszukiwania danych. Dotyczy do szczególnie przypadków, gdy w indeksowanym widoku dokonujemy agregacji i wyliczeń. Dane są wówczas przechowywane w indeksie i nie muszą być przeliczane przy każdym odwołaniu do widoku.Wadą indeksowania perspektyw jest oczywiście to, że tworzona jest kopia danych oraz fakt, że przy operacjach zapisu indeks musi zostać przebudowany (a w przypadku użycia agregacji i obliczeń - także te operacje muszą zostać powtórzone).
Przejdź dalej ![]() |
|||||||
![]() Ćwiczenia > Perspektywy w MS SQL Server 2000 > Indeksowanie perspektyw |