Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Usuwanie indeksu

Termin Definicja
Usuwanie indeksu

Usuwanie indeksu poleceniem DROP INDEX zwalnia zajmowane przez niego miejsce kosztem wolniejszych odczytów.

Co oznacza usunięcie indeksu w bazie danych

Usuwanie indeksu polega na usunięciu dodatkowej struktury danych utworzonej przez system zarządzania bazą danych dla jednej lub kilku kolumn tabeli. Indeks przechowuje uporządkowane informacje pozwalające szybciej odnaleźć wiersze spełniające warunek zapytania. Nie jest jednak głównym źródłem danych: rekordy nadal pozostają w tabeli, o ile osobno nie wykonano operacji usuwającej dane. Polecenie usunięcia indeksu usuwa więc mechanizm przyspieszający wybrane operacje, a nie zawartość tabeli.

W środowiskach stosujących składnię SQL operacja jest zwykle wykonywana poleceniem DROP INDEX, ale dokładna składnia, wymagane uprawnienia i sposób wskazania obiektu zależą od konkretnego silnika bazy danych. Przed użyciem polecenia trzeba ustalić nazwę indeksu oraz obiekt, do którego należy. Usunięcie indeksu o innej nazwie nie powiedzie się, natomiast usunięcie właściwego indeksu może zmienić sposób wykonywania wielu zapytań.

Dlaczego po DROP INDEX odczyt może działać wolniej

Indeks pozwala silnikowi ograniczyć liczbę stron danych odczytywanych podczas wyszukiwania, sortowania lub łączenia tabel. Jeżeli zapytanie filtruje rekordy po kolumnie objętej indeksem, optymalizator może wybrać odczyt struktury indeksowej zamiast pełnego przeglądania tabeli. Po usunięciu indeksu taka możliwość znika. Silnik może wtedy wykonać skan tabeli, czyli sprawdzić większą liczbę rekordów, aby znaleźć te spełniające warunek.

Skutek jest zależny od rozmiaru tabeli, liczby zwracanych wierszy, selektywności warunku oraz aktualnego planu wykonania. Mała tabela może być przeglądana szybko nawet bez indeksu, ponieważ koszt pełnego skanu pozostaje niewielki. W dużej tabeli brak indeksu może natomiast zwiększyć czas odczytu i obciążenie urządzenia pamięci masowej. Usunięcie indeksu może także pogorszyć wydajność sortowania, grupowania lub operacji łączenia, jeżeli dany indeks był przydatny przy realizacji tych czynności.

Kiedy zwolnienie miejsca uzasadnia usunięcie indeksu

Każdy indeks zajmuje miejsce w bazie danych i wymaga utrzymywania dodatkowych struktur podczas zmian rekordów. Przy dodawaniu, modyfikowaniu lub usuwaniu danych silnik może aktualizować także indeksy powiązane ze zmienionymi kolumnami. Zbyt duża liczba nieużywanych albo nakładających się indeksów może więc zwiększać rozmiar bazy oraz koszt operacji zapisu. Usunięcie zbędnego indeksu może ograniczyć ten narzut, ale nie powinno być wykonywane wyłącznie na podstawie jego rozmiaru.

Przed decyzją warto sprawdzić, czy indeks jest używany przez rzeczywiste zapytania, czy nie wspiera klucza głównego, ograniczenia unikalności albo innej zależności wymaganej przez silnik. Należy także porównać plany wykonania i czasy zapytań przed oraz po zmianie, najlepiej na danych i obciążeniu zbliżonym do produkcyjnego. Indeks utworzony dla kolumny rzadko wykorzystywanej w filtrach może być kandydatem do usunięcia, lecz indeks używany przez zapytania wykonywane cyklicznie może powodować zauważalne spowolnienie po usunięciu.

Bezpieczne sprawdzenie skutków na laptopie lub komputerze

W przypadku bazy używanej przez aplikację na laptopie lub komputerze PC operację należy poprzedzić kopią zapasową albo inną możliwością odtworzenia poprzedniej konfiguracji. Przed wykonaniem DROP INDEX trzeba potwierdzić, że wskazany obiekt jest rzeczywiście niepotrzebnym indeksem, a nie elementem wymuszającym unikalność danych lub obsługującym klucz tabeli. Warto zanotować nazwę indeksu, tabelę, kolumny i powód planowanej zmiany.

Po usunięciu należy uruchomić najważniejsze zapytania aplikacji i sprawdzić ich czas wykonania, obciążenie procesora, wykorzystanie pamięci oraz aktywność dysku. Jeżeli odczyty wyraźnie zwolnią, można odtworzyć indeks zgodnie ze składnią używanego silnika. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC oraz ich podzespołów, dlatego przy problemach z lokalnym środowiskiem bazodanowym można zlecić sprawdzenie stanu sprzętu, dysku i konfiguracji systemu wpływających na pracę aplikacji.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę