[ Pobierz całość w formacie PDF ]
.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.u Instrukcje kryteriów muszą używać tych indeksów na jeden z trzech sposobów:u Część wspólna  wyrażenie kryterium z operatorem  AND.Jet mógłby w tym przypadku skorzystać zoptymalizacji Rushmore, gdyż oba te pola są indeksowane.WHERE NazwaFirmy='Ernst Handle' And Miasto='Graz'u Połączenie  wyrażenie kryterium z operatorem  OR.Jet mógłby w tym przypadku skorzystać z optymalizacjiRushmore, gdyż oba te pola są indeksowane.WHERE NazwaFirmy='Ernst Handle' Or Miasto='Graz'u Zliczanie  podlicza kwerendę, zwracając jedynie liczbę rekordów.Rushmore zoptymalizuje tę kwerendęnawet przy braku ograniczeń w warunku Where.SELECT Count(*) FROM Klienci;Upewnij się, że we wszystkich tabelach, które mogą z tego skorzystać, umieściłeś indeksy.Spróbuj również takkonstruować kwerendy, by można było uzyskiwać części wspólne i połączenia tych indeksów.Wykorzystanie tych dwóchwskazówek powinno załatwić sprawę operacji tabel podstawowych w planie wykonywania kwerendy.Gdy Jet wybrał już sposób dostępu do danych w pojedynczych tabelach, musi sprawdzić, jakie między tabelami występująrelacje.Tę fazę optymalizacji można by nazwać określaniem strategii sprzężenia.W przewidywaniu strategii sprzężeniaplanu wykonywania pomoże Ci znajdująca się w tabeli 14.2 charakterystyka typów strategii.Tabela 14.2.Typy złączeń: jak działają i jak je rozpoznaćTyp sprzężenia Sposób działania Cechy charakterystyczne UżycieIndeks-Połączenie Większość pracy Indeksy użyte są po obu Gdy tylko to możliwewykonują indeksy stronach relacji.Co najmniejjeden z indeksów niedopuszcza wartości null(klucz podstawowy).Wszystkie tabele muszą byćw rodzimym formacieaparatu JetTabela 14.2.Typy złączeń: jak działają i jak je rozpoznaćTyp sprzężenia Sposób działania Cechy charakterystyczne Użycie 252Część IV f& Tajniki VBAIndeks Pierwsza tabela jest Indeks użyty jest w polu Jeśli w drugiej tabeli jestskanowana, (polach) relacji drugiej tabeli.niewiele rekordów, jeśli jeja następnie, przy W indeksach tych możliwe są rekordy nie są wyświetlaneużyciu indeksów, wartości null.Ograniczenia nie w zestawie wyników lubodnajdywane są używają indeksów jeśli ograniczeniewiersze w drugiej w kryterium pierwszej tabelitabeli jest bardzo wąskiePołączenie Obie tabele Dwie tabele sortowane według Obie tabele są dużeskanowane są sprzężonych pól [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • swpc.opx.pl
  •