| Termin | Definicja |
|---|---|
| Zoptymalizowany dostęp do danych | Zoptymalizowany dostęp do danych łączy odpowiednie indeksy, aktualne statystyki i dobrze napisane zapytania. Jak powstaje zoptymalizowany dostęp do danychZoptymalizowany dostęp do danych oznacza takie przygotowanie struktury przechowywania i odczytu informacji, aby system wykonywał możliwie mało niepotrzebnych operacji. W relacyjnej bazie danych podstawą jest poprawnie zaprojektowany schemat tabel, właściwe typy kolumn, określone klucze główne oraz relacje między tabelami. Klucz główny jednoznacznie identyfikuje rekord, a klucze obce pozwalają wiązać dane bez powielania całych zestawów informacji. Ograniczenia, takie jak Na szybkość odczytu wpływa także sposób formułowania zapytań. Zapytanie powinno pobierać tylko potrzebne kolumny i rekordy, zamiast zwracać całą tabelę. Warunki filtrowania, łączenia tabel i sortowania muszą odpowiadać rzeczywistemu celowi operacji. Nadmierne zagnieżdżenia, wielokrotne wykonywanie tego samego zapytania oraz pobieranie dużych zbiorów danych do pamięci aplikacji zwiększają czas odpowiedzi i zużycie zasobów. Przy większej liczbie wyników stosuje się stronicowanie, czyli pobieranie danych partiami, a nie jednorazowe przesyłanie całego wyniku. Indeksy, selektywność i plan wykonaniaIndeks jest dodatkową strukturą umożliwiającą szybsze odnalezienie rekordów według określonych kolumn. Może być przydatny dla kolumn używanych w warunkach Istotna jest selektywność indeksu, czyli zdolność do ograniczenia liczby rozpatrywanych rekordów. W indeksach wielokolumnowych znaczenie ma kolejność kolumn, ponieważ mechanizm wyszukiwania zwykle najskuteczniej wykorzystuje początkową część takiej struktury. Nie należy jednak dobierać indeksów wyłącznie na podstawie nazwy kolumny. Decyzję warto oprzeć na rzeczywistych zapytaniach oraz planie wykonania, który pokazuje między innymi sposób dostępu do tabel, kolejność łączenia danych, użycie indeksów i szacowaną liczbę rekordów. Plan z pełnym skanowaniem tabeli nie zawsze oznacza błąd: przy małej tabeli odczyt całej struktury może być tańszy niż użycie indeksu. Statystyki i obserwacja rzeczywistego obciążeniaOptymalizator zapytań podejmuje decyzje na podstawie informacji o danych, w tym rozkładzie wartości i przewidywanej liczbie rekordów spełniających warunki. Aktualne statystyki pomagają mu odróżnić zapytanie zwracające pojedynczy rekord od zapytania obejmującego znaczną część tabeli. Jeżeli statystyki są nieaktualne, system może wybrać niekorzystny plan, na przykład rozpocząć łączenie od tabeli, która w rzeczywistości zwraca znacznie więcej danych, niż wynikało z wcześniejszych szacunków. Problem może pojawić się po dużym imporcie, masowym usunięciu rekordów albo gwałtownej zmianie rozkładu wartości. Ocena dostępu do danych powinna uwzględniać pomiar, a nie tylko pojedynczy czas odpowiedzi. Należy porównać czas wykonania, liczbę odczytanych stron lub bloków, liczbę zwróconych wierszy, zużycie procesora oraz oczekiwanie na operacje wejścia i wyjścia. Warto sprawdzić, czy opóźnienie występuje stale, czy tylko przy określonych parametrach i porach obciążenia. Zapytanie zwracające dziesięć rekordów po odczytaniu milionów wierszy może wymagać innej korekty niż zapytanie, które rzeczywiście musi przetworzyć większość tabeli. Analiza logów aplikacji i narzędzi monitorujących pozwala powiązać wolne operacje z konkretnym modułem, ekranem lub zadaniem uruchamianym w tle. Praktyczne sprawdzenie na laptopie lub komputerze PCW komputerze użytkownika zoptymalizowany dostęp do danych zależy również od warstwy sprzętowej i systemowej. Baza lub aplikacja korzystająca z dysku może działać wolniej, gdy nośnik ma niewiele wolnego miejsca, występują błędy systemu plików, aktywne skanowanie antywirusowe obejmuje katalog z intensywnymi operacjami albo system wykonuje inne zadania obciążające dysk. Znaczenie ma także ilość pamięci RAM. Gdy brakuje pamięci, system może częściej przenosić dane do pliku stronicowania, a operacje dyskowe zastępują wtedy szybki dostęp z pamięci operacyjnej. Podczas diagnostyki należy rozdzielić problem zapytania od problemu komputera. Można sprawdzić wykorzystanie procesora, pamięci, aktywność dysku, temperatury podzespołów i opóźnienia aplikacji, a następnie porównać wynik z czasem wykonywania tej samej operacji na innych danych lub po ponownym uruchomieniu programu. W przypadku aplikacji przechowującej dane lokalnie warto zweryfikować stan dysku, integralność systemu plików, dostępne miejsce oraz uprawnienia do katalogów roboczych. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, a w ramach diagnostyki można ustalić, czy spowolnienie wynika z awarii nośnika, niewystarczających zasobów komputera, konfiguracji systemu czy nieefektywnego działania samej aplikacji. |