| Termin | Definicja |
|---|---|
| Indeks XML | Indeks XML to specjalizowana struktura przyspieszająca zapytania na danych przechowywanych w tym znacznikowym formacie. Rola indeksu XML w zapytaniach do danych znacznikowychIndeks XML jest strukturą pomocniczą tworzoną dla danych zapisanych w formacie XML. Jego zadaniem jest ograniczenie zakresu informacji, które silnik bazy danych musi przeszukać podczas wykonywania zapytania dotyczącego elementów, atrybutów, wartości lub struktury dokumentu. Bez takiego indeksu zapytanie może wymagać odczytania całej wartości XML i ponownego przeanalizowania jej zawartości. Przy dużych dokumentach albo wielu rekordach prowadzi to do zwiększonego użycia procesora, pamięci oraz operacji wejścia-wyjścia. Indeks nie zmienia samego dokumentu XML i nie zastępuje danych źródłowych. Przechowuje dodatkowe informacje pozwalające szybciej odnaleźć fragmenty odpowiadające warunkom zapytania. Korzyść zależy od sposobu korzystania z danych: zapytania wyszukujące konkretne węzły lub wartości mogą działać sprawniej, natomiast proste odczytanie całego dokumentu nie musi zyskać na wydajności. Trzeba też uwzględnić koszt utworzenia indeksu oraz jego aktualizacji po każdej zmianie zawartości XML. Jak silnik odwzorowuje strukturę dokumentu XMLDokument XML ma strukturę hierarchiczną. Element może zawierać elementy potomne, atrybuty, tekst oraz inne węzły. Indeks XML odwzorowuje wybrane cechy tej hierarchii w postaci przygotowanej do wyszukiwania. Dzięki temu warunek odnoszący się na przykład do nazwy elementu, ścieżki w dokumencie albo wartości węzła może zostać rozpatrzony na podstawie struktury indeksu, zamiast przez pełne przetwarzanie każdego dokumentu. W praktycznych implementacjach spotyka się indeks podstawowy, obejmujący wewnętrzną reprezentację węzłów dokumentu, oraz indeksy dodatkowe dostosowane do rodzaju zapytań. Indeks ścieżek może pomagać w wyszukiwaniu według lokalizacji elementu, indeks wartości jest przydatny przy porównywaniu zawartości, a indeks właściwości wspiera odczyt danych związanych z konkretnym rekordem. Nazewnictwo i dokładne zasady działania tych odmian zależą od silnika bazy danych, dlatego konfigurację należy sprawdzać w dokumentacji używanego produktu, a nie przenosić bezpośrednio z innego systemu. Wpływ indeksowania na zapis i utrzymanie danychIndeks XML może skrócić czas odczytu, ale zwiększa rozmiar bazy danych. Podczas dodawania, modyfikowania lub usuwania dokumentu silnik musi zaktualizować zarówno wartość XML, jak i powiązane struktury indeksowe. Oznacza to dodatkowe operacje podczas zapisu oraz możliwość zwiększenia czasu trwania transakcji. Z tego powodu indeksowanie powinno wynikać z rzeczywistego profilu zapytań, a nie wyłącznie z faktu, że kolumna przechowuje dane XML. Przed utworzeniem indeksu warto sprawdzić plan wykonania zapytań, częstotliwość odczytów, wielkość dokumentów oraz udział operacji zapisu. Przydatne jest porównanie czasu wykonania i kosztu planu przed indeksowaniem oraz po nim, a także obserwowanie zajętości miejsca i obciążenia podczas aktualizacji danych. Jeżeli dokumenty są małe, odczyty sporadyczne, a zapisy częste, narzut utrzymania indeksu może przewyższyć zysk. Jeżeli natomiast duża tabela jest regularnie przeszukiwana według struktury XML, właściwie dobrany indeks może ograniczyć liczbę odczytywanych stron i zmniejszyć pracę wykonywaną przez procesor. Rozpoznawanie problemów z indeksem XMLObjawem niewłaściwego indeksowania może być brak poprawy czasu zapytań mimo zwiększenia rozmiaru bazy danych. Przyczyną bywa zapytanie, którego warunki nie odpowiadają zawartości indeksu, niezgodny typ danych, nieaktualne statystyki albo selektywność tak mała, że silnik wybiera skanowanie zamiast użycia indeksu. Warto również sprawdzić, czy zapytanie nie wykonuje dodatkowych konwersji, operacji na całej wartości XML lub funkcji uniemożliwiających efektywne wykorzystanie struktury pomocniczej. Diagnostyka powinna obejmować plan wykonania, rzeczywistą liczbę odczytów logicznych, czas procesora oraz zachowanie systemu podczas zapisu. Nie należy usuwać indeksu wyłącznie na podstawie pojedynczego wolnego zapytania, ponieważ plan może zależeć od rozmiaru danych i aktualnych parametrów. Bezpieczna ocena wymaga porównania kilku reprezentatywnych przypadków oraz sprawdzenia wpływu na operacje modyfikujące dokumenty XML. W środowisku komputerowym problemy z wydajnością bazy mogą być mylone z awarią dysku, brakiem pamięci lub przeciążeniem procesora, dlatego analiza powinna rozdzielić objawy sprzętowe od zachowania silnika bazodanowego. |