Strojenie bazy danych - Database tuning

Strojenie bazy danych opisuje grupę czynności wykorzystywanych do optymalizacji i ujednolicenia wydajności bazy danych . Zwykle pokrywa się to z dostrajaniem zapytań , ale dotyczy projektowania plików bazy danych, wyboru aplikacji systemu zarządzania bazą danych (DBMS) oraz konfiguracji środowiska bazy danych ( system operacyjny , procesor itp.).

Strojenie bazy danych ma na celu maksymalizację wykorzystania zasobów systemowych w celu jak najefektywniejszego i jak najszybszego wykonywania pracy. Większość systemów jest zaprojektowana do zarządzania wykorzystaniem zasobów systemowych, ale nadal istnieje wiele możliwości poprawy ich wydajności poprzez dostosowanie ich ustawień i konfiguracji dla bazy danych i DBMS.

Strojenie we/wy

Sprawdzana jest konfiguracja sprzętowa i programowa podsystemów dyskowych: poziomy i konfiguracja RAID , alokacja rozmiaru bloków i pasków oraz konfiguracja dysków, kart kontrolerów , szaf pamięci masowej i zewnętrznych systemów pamięci masowej, takich jak sieci SAN . Dzienniki transakcji i przestrzenie tymczasowe są dużymi konsumentami operacji we/wy i wpływają na wydajność wszystkich użytkowników bazy danych. Odpowiednie ich umieszczenie ma kluczowe znaczenie.

Często łączone tabele i indeksy są umieszczane w taki sposób, że żądane z magazynu plików mogą być jednocześnie pobierane z oddzielnych dysków. Często używane tabele i indeksy są umieszczane na osobnych dyskach w celu zrównoważenia operacji we/wy i zapobiegania kolejkom odczytu.

Strojenie DBMS

Użytkownicy DBMS i eksperci DBA

Strojenie SZBD odnosi się do strojenia SZBD oraz konfiguracji pamięci i zasobów obliczeniowych komputera, na którym działa SZBD. Zwykle odbywa się to poprzez konfigurację DBMS, ale zaangażowane zasoby są współdzielone z systemem hosta .

Strojenie DBMS może obejmować ustawienie interwału odtwarzania (czasu potrzebnego do przywrócenia stanu danych do określonego punktu w czasie), przypisanie paralelizmu (rozbicie pracy z pojedynczego zapytania na zadania przypisane różnym zasobom przetwarzania) oraz protokołów sieciowych używany do komunikacji z konsumentami baz danych.

Pamięć jest przydzielana na dane, plany wykonania , pamięć podręczną procedur i przestrzeń roboczą . Dostęp do danych w pamięci jest znacznie szybszy niż do danych w pamięci masowej, więc utrzymywanie pokaźnej pamięci podręcznej danych przyspiesza wykonywanie czynności. To samo dotyczy przestrzeni do pracy. Buforowanie planów i procedur wykonania oznacza, że ​​są one ponownie używane zamiast ponownie kompilowane w razie potrzeby. Ważne jest, aby zabrać jak najwięcej pamięci, pozostawiając wystarczająco dużo, aby inne procesy i system operacyjny mogły korzystać bez nadmiernego stronicowania pamięci do przechowywania.

Zasoby przetwarzania są czasami przypisywane do określonych działań w celu poprawy współbieżności . Na serwerze z ośmioma procesorami sześć może być zarezerwowanych dla DBMS, aby zmaksymalizować dostępne zasoby przetwarzania bazy danych.

Automatyczne strojenie DB

Wykorzystuje uczenie maszynowe, aby nauczyć się oceniać wydajność pod różnymi obciążeniami.

Utrzymanie bazy danych

Konserwacja bazy danych obejmuje tworzenie kopii zapasowych , aktualizacje statystyk kolumn oraz defragmentację danych w plikach bazy danych.

W przypadku intensywnie używanej bazy danych dziennik transakcji szybko się powiększa. Wpisy dziennika transakcji muszą zostać usunięte z dziennika, aby zrobić miejsce na przyszłe wpisy. Częste kopie zapasowe dziennika transakcji są mniejsze, więc przerywają aktywność bazy danych na krótsze okresy.

DBMS używa histogramów statystycznych, aby znaleźć dane w zakresie względem tabeli lub indeksu. Aktualizacje statystyk należy planować często i próbkować jak najwięcej danych źródłowych. Dokładne i zaktualizowane statystyki pozwalają aparatom zapytań podejmować dobre decyzje dotyczące planów wykonania, a także sprawnie lokalizować dane.

Defragmentacja danych tabel i indeksów zwiększa wydajność dostępu do danych. Wielkość fragmentacji zależy od charakteru danych, sposobu ich zmiany w czasie oraz ilości wolnego miejsca na stronach bazy danych do akceptowania wstawiania danych bez tworzenia dodatkowych stron.

Bibliografia