| Termin | Definicja |
|---|---|
| Zależności indeksu | Zależności indeksu obejmują statystyki i ograniczenia, które mogą uniemożliwić jego usunięcie bez wcześniejszej modyfikacji. Indeks jako element struktury tabeliZależności indeksu to powiązania między indeksem a innymi elementami bazy danych, przede wszystkim tabelą, kolumnami oraz regułami wymuszającymi spójność danych. Indeks nie przechowuje niezależnej kopii tabeli przeznaczonej do swobodnego używania. Jest strukturą pomocniczą zbudowaną na podstawie wartości wskazanych kolumn i służy do szybszego wyszukiwania, sortowania albo sprawdzania unikalności. Z tego powodu usunięcie kolumny, zmiana jej typu lub modyfikacja ograniczenia może wymagać wcześniejszego przeanalizowania powiązanego indeksu. Do podstawowych zależności należy zależność od konkretnej tabeli. Gdy tabela zostanie usunięta, jej indeksy zwykle również przestają istnieć, ponieważ nie mają już danych, do których mogłyby się odnosić. Odwrotna sytuacja nie zawsze jest możliwa: usunięcie indeksu może być zablokowane albo może zmienić sposób działania ograniczenia UNIQUE lub PRIMARY KEY, jeśli indeks wspiera egzekwowanie niepowtarzalności. W praktyce trzeba więc rozróżnić zwykły indeks utworzony dla wydajności od struktury indeksowej powiązanej bezpośrednio z regułą integralności. Statystyki i ograniczenia wpływające na usuwanieSilnik bazy danych może gromadzić statystyki opisujące rozkład wartości w kolumnach indeksu, między innymi liczbę różnych wartości, szacowaną selektywność oraz zakres występowania danych. Optymalizator zapytań wykorzystuje takie informacje do wyboru planu wykonania. Statystyki nie są tym samym co indeks, ale często są z nim logicznie powiązane: mogą zostać utworzone na podstawie indeksu, odwoływać się do jego kluczy albo być aktualizowane przy zmianach danych. Przed usunięciem indeksu należy sprawdzić, czy usunięcie nie spowoduje również utraty informacji używanych do optymalizacji zapytań. Drugą grupę stanowią ograniczenia i obiekty zależne. Indeks może wspierać klucz główny, ograniczenie unikalności, sprawdzanie relacji między tabelami albo specjalny mechanizm wymagający uporządkowanego dostępu do danych. W niektórych silnikach nazwa indeksu jest technicznym szczegółem, a w innych indeks staje się fizyczną realizacją ograniczenia i nie można usunąć go niezależnie. Ograniczeniem może być także zależność od kolumny używanej w wyrażeniu indeksowym, kluczu złożonym lub warunku filtrującym. Próba usunięcia takiej kolumny bez wcześniejszej przebudowy zależnych struktur kończy się błędem albo wymaga wykonania zmian w odpowiedniej kolejności. Rozpoznawanie zależności przed zmianą schematuAnalizę należy rozpocząć od ustalenia, jakie kolumny obejmuje indeks, czy kolejność kolumn ma znaczenie oraz czy indeks jest unikalny. W indeksie wielokolumnowym nie można oceniać każdej kolumny osobno, ponieważ kolejność kluczy wpływa na możliwość wykorzystania struktury przy filtrach i sortowaniu. Trzeba także sprawdzić, czy indeks ma właściwości dodatkowe, takie jak filtr, wyrażenie obliczane, kolumny dołączone wyłącznie do odczytu albo określony sposób porządkowania wartości. Następnie warto przejrzeć definicje ograniczeń, widoków, procedur, zapytań zapisanych w aplikacji oraz narzędzi administracyjnych, które mogą zakładać istnienie określonego indeksu. Sama zależność logiczna nie zawsze jest widoczna jako formalne odwołanie w katalogu systemowym. Aplikacja może na przykład wymuszać użycie nazwy indeksu w podpowiedzi optymalizatora albo oczekiwać określonego planu wykonania, mimo że baza danych nie traktuje tego jako zależności blokującej. Bezpieczna zmiana obejmuje porównanie schematu przed i po modyfikacji, sprawdzenie planów najważniejszych zapytań oraz kontrolę komunikatów generowanych przez silnik podczas przebudowy. Skutki usunięcia indeksu dla pracy komputeraUsunięcie indeksu nie usuwa rekordów z tabeli, ale może zwiększyć koszt wyszukiwania, sortowania i łączenia danych. Zapytanie, które wcześniej korzystało z odczytu wybranych wpisów, może po zmianie wymagać skanowania całej tabeli. Skutek będzie szczególnie widoczny wtedy, gdy zapytanie wybiera niewielką część dużego zbioru albo wykonuje się często. Z drugiej strony nieużywany lub nadmiarowy indeks zajmuje miejsce, wydłuża operacje zapisu i wymaga aktualizacji przy dodawaniu, zmianie oraz usuwaniu rekordów. Ocena zależności powinna zatem uwzględniać zarówno ryzyko utraty wydajności, jak i koszt utrzymywania zbędnej struktury. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC oraz ich podzespołów, w tym diagnostykę problemów z oprogramowaniem bazodanowym działającym na komputerze użytkownika. W przypadku podejrzenia, że błędna konfiguracja, uszkodzenie systemu plików albo nieprawidłowa praca nośnika wpływa na działanie programu, potrzebne jest oddzielenie problemu sprzętowego od błędu schematu lub zapytania. Przed zmianą indeksów należy wykonać kopię danych, zachować definicję dotychczasowej struktury i zaplanować możliwość odtworzenia indeksu, ponieważ sama naprawa komputera nie zastępuje kontroli zależności w bazie. |