[ Pobierz całość w formacie PDF ]
.Jednakże co do zasady, powinieneś normalizować wszystkoco tylko możliwe.Tego właśnie oczekuje silnik Jet, który najlepiej pracuje na znormalizowanych danych. 250Część IV f& Tajniki VBATworzenie indeksóww celu przyspieszenia pracy kwerendu Indeksy mogą dziesięciokrotnie przyspieszyć pobieranie danych.u Indeksy mogą również spowolnić aktualizowanie i wprowadzanie danych, więc unikaj tworzenia zbędnychindeksów.u Twórz takie klucze podstawowe, które są zrozumiałe dla danych i dla użytkowników.Z punktu widzeniawydajności umożliwienie Accessowi tworzenie pól klucza podstawowego przez wstawianie pola Autonumerowaniejest praktycznie bezużyteczne.Powinieneś używać czegoś, co posiada większe znaczenie, chyba że użytkownicy nieznajdują innego sposobu na identyfikowanie rekordów.Niech będzie to numer telefonu, numer PESEL, numerkonta, kod sprzedawcy itp.Aby indeks naprawdę wpływał na poprawę wydajności kwerendy, musi byćwykorzystywany w kwerendzie.u Indeksuj wszystkie te pola w tabeli, których będziesz używał jako kryterium.Indeksowanie kilku pól w tabeliułatwi optymalizowanie utworzonych pózniej kwerend.u Indeksuj pola po obu stronach przewidywanego sprzężenia.Ponieważ pola Numer Zamówienia jest w relacjizarówno z tabelami Szczegóły Zamówień, jak i Zamówienia, obie te tabele powinny posiadać odpowiedni indeks.Jeśli jednak masz zamiar tworzyć wiele raportów według pola Data Zamówienia, również to pole powinno byćindeksowane.Wcześniejsze tworzenierelacji jako sposób na poprawę wydajnościDo tworzenia relacji między tabelami używaj okna Relacje.Wykonując tę czynność w tym oknie, masz możliwośćokreślenia właściwości tworzonej relacji.Dzięki temu również poinformujesz Jet o jej istnieniu.Będzie on wówczas wstanie wykorzystać te informacje do przygotowania bardziej efektywnego planu optymalizacji, który zostanie wy-korzystany podczas tworzenia kwerend.Ma to wpływ na poprawę wydajności.Krótko mówiąc, normalizuj dane, gdy jest to konieczne twórz indeksy, bądz oszczędny przy określaniu typów danych irozmiarów pól oraz pamiętaj o tworzeniu prostych tabel.Ich celem jest przechowywanie danych, a nie ich prezentowanie.Poprawa wydajności kwerendMimo iż użytkownicy mogą nigdy nie zobaczyć, jak wyglądają kwerendy, to one właśnie wykonują większość pracy waplikacji.Relacyjna baza danych byłaby bezużyteczna, gdyby nie można było tworzyć w niej kwerend.Jednak nie wszystkiekwerendy tworzone są w ten sam sposób.Nawet gdy wykonałeś wszystkie czynności niezbędne do znormalizowaniadanych oraz utworzyłeś wszystkie wymagane indeksy, może się okazać, że kwerendy nie będą działać tak szybko jakpowinny.Może się nawet zdarzyć, że dwie kwerendy zwracające ten sam zestaw wyników będą miały różną wydajność.Aby zrozumieć, jak działa optymalizacja kwerend, musisz poznać sposób, w jaki obchodzi się z nimi Jet.Każda kwerendaprzechodzi cztery etapy:66.Definicja  przy użyciu jednego z kilku narzędzi tworzona jest instrukcja SQL.67.Kompilacja  ciąg SQL jest dzielony na części.68.Optymalizacja  używając działającego w oparciu o koszt algorytmu, Jet tworzy i testuje różne sposobyotrzymania żądanego zestawu wyników.69.Wykonanie  używając optymalnego planu, Jet dostarcza użytkownikowi zestaw wyników.Kwerendę możesz definiować poprzez siatkę QBE, ciąg SQL wykonywany w kodzie, ciąg SQL we właściwości yródłowierszy formularza, raportu lub formantu lub w każdy inny sposób, który powoduje powstanie ciągu SQL.Jet umieszcza części ciągu w hierarchicznej, wewnętrznej strukturze.Części te przypominają słowa kluczowe instrukcjiSQL.Tabela podstawowa użyta przez kwerendę (From) stanowi podstawę.Następnie ustawiane są kolumny zestawuwyników (Select).Pózniej ustawiane są kryteria i ograniczenia (Where), które musi spełnić kwerenda.Kolejnym ele-mentem są informacje o relacjach tabeli podstawowej (Join).Ostatnia część to informacja o sposobie sortowania zestawuwyników (Order by).Struktura ta charakterystyczna jest dla fazy optymalizacji. 251Rozdział 14.f& Optymalizacja aplikacjiOptymalizacja to najbardziej złożony etap.Jet wycenia i oblicza koszt każdego z możliwych rozwiązań.Dokonuje tego nadwa sposoby: uzyskując dostęp do tabel bazowych i sprawdzając istniejące między nimi sprzężenia.Zrozumienie sposobu,w jaki Jet postrzega kwerendy, może pomóc Ci w projektowaniu szybszych kwerend w przyszłości.Jet pobiera wiersze z tabel na trzy sposoby:u Skanowanie  jest to najdroższe rozwiązanie.Jet przeszukuje każdy wiersz bez użycia indeksu.Kwerenda wymusina aparacie Jet skanowanie tabeli jeśli:Jej ograniczenie dotyczy nieindeksowanego pola.Duża część wierszy tabeli spełnia kryteria kwerendy.u Indeksowanie  Jet używa do przeszukiwania wierszy tabeli jej indeksu.Mimo, iż może się zdarzyć, że Jet będzieodczytywał stronę z danymi więcej niż raz, rozwiązanie to jest dużo szybsze niż skanowanie.u Optymalizacja Rushmore  opcja ta dostępna jest tylko w sytuacji, w której ustanowione w kwerendzieograniczenia dotyczą więcej niż jednego indeksu.Rushmore umożliwia silnikowi Jet znaczne zmniejszenie (wniektórych przypadkach nawet do zera) ilości odczytywanych stron z danymi.Dzięki użyciu optymalizacjiRushmore Jet odczytuje jedynie indeksowane strony, co jest rozwiązaniem niezwykle wydajnym.Oczywistym jest, że jeśli to tylko możliwe, powinieneś unikać skanowania i jak najlepiej wykorzystywać indeksy.Ale jaksprawdzić, czy najlepsze z rozwiązań  optymalizacja Rushmore  będzie działać na danej kwerendzie? Nie ma sposobu nawłączenie lub wyłączenie technologii Rushmore, nie istnieją również żadne opisujące ją wskazniki.Jest ona zawsze włączona,lecz tylko niektóre z rodzajów kwerend mogą z niej korzystać.Aby kwerenda wykorzystywała optymalizację Rushmoremuszą być spełnione trzy warunki:u Kwerenda musi posiadać kilka indeksów.u Kryteria kwerendy muszą dotyczyć pól z indeksami [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • agnieszka90.opx.pl