Instrukcje SQL są kluczowymi elementami typowych aplikacji bazodanowych, a więc efektywność ich wykonywania decyduje w głównym stopniu o wydajności samych aplikacji. Twórcy aplikacji bazodanowych i administratorzy baz danych często spędzają długie godziny w celu upewnienia się, że dostęp do danych istotnie odbywa się po najszybszych ścieżkach, czyli że plany wykonywania wyrażeń SQL są optymalne. Wiąże się z tym między innymi rozważanie wzajemnego związku między strukturą wyrażeń SQL a planami ich wykonywania.
Książka ta poświęcona jest jednemu z kluczowych aspektów tego związku, często niedocenianemu, aczkolwiek niezmiernie istotnemu -- wyborowi odpowiedniego planu wykorzystywanego przez określone zapytanie. Autor prezentuje matematyczną metodą optymalizacji wyrażeń SQL, opierającą się na dobrze zdefiniowanym algorytmie postępowania i prowadzącą do znajdowania optymalnych (lub niemal optymalnych) planów wykonania dla określonych wyrażeń; jest to naprawdę atrakcyjna alternatywa dla poszukiwań metodą prób i błędów, rzadko dającą optymalne rezultaty. Czytelnik znajdzie w niniejszej książce opis wielu szczegółowych zagadnień związanych z optymalizacją wyrażeń SQL i baz danych w ogólności, między innymi takich jak:
- Buforowanie danych i zarządzanie tabelami
- Indeksowanie, implementowanie indeksów i związane z tym koszty
- Filtrowanie zawartości tabel i jego związek z indeksowaniem
- Złączenia tabel i metody ich realizacji
- Analiza planów wykonywania zapytań i zarządzanie tymi planami w bazach danych Oracle, MS SQL Server i DB2
- Sporządzanie diagramów zapytań i wykorzystywanie ich do celów optymalizacji złożonych zapytań oraz do wyznaczania najlepszych planów wykonywania
- Specjalne metody optymalizacji szczególnych przypadków, w których standardowe postępowanie okazuje się niewystarczające: buforowanie wielokrotnie wydawanych zapytań, łączenie i upodobnianie zapytań itp.
Treści poszczególnych rozdziałów towarzyszą ćwiczenia kontrolne, a całość wieńczy prezentacja zastosowania opisywanych koncepcji w (kompletnie opisanym) procesie optymalizowania konkretnej aplikacji.
Przyśpiesz działanie aplikacji -- zoptymalizuj dostęp do danych