Warszawska Wyższa Szkła Infrmatyki Warszawa 2011 Optymalizacja wydajnści zapytań w testwaniu schematu bazy danych Autr: Hubert Kwiatkwski Prmtr: dr inż. Paweł Figat, mgr inż. Andrzej Ptasznik Slajd 1/16
Plan prezentacji Wstęp - dziedzina przedmitwa Cel pracy Część teretyczna Relacyjne bazy danych Technlgie: XML, wyszukiwanie pełntekstwe, HIERARCHYID Część praktyczna Opis prblemu Schematy bazy danych Typwe zapytania Optymalizacja zapytań Testy wydajnści BD Tester Pdsumwanie Slajd 2/16
Wstęp: ptymalizacja zapytań Cel: zwiększenie wydajnści pdsystemu bazdanweg Kryteria wydajnści: czas realizacji zapytań, przepustwść, skalwalnść Prces ptymalizacji: Prjekt struktury bazy danych Dstrajanie zapytań Dbór indeksów Pzim współbieżnści blkady Wąskie gardła sprzętwe prcesr, pamięć peracyjna i maswa Slajd 3/16
Cel pracy Celem pracy jest analiza wydajnści zapytań dla różnych wariantów prjektwych schematu bazy danych. Odpwiedź na pytanie: Czy klasyczny schemat bazy danych daje najlepsze rezultaty pd względem wydajnści zapytań? Slajd 4/16
Relacyjne bazy danych Rys histryczny - mdel relacyjny Cdda, język SQL Nrmalizacja danych Lgiczna i fizyczna rganizacja danych Prces realizacji zapytania Optymalizacja zapytań Slajd 5/16
Technlgie XML uniwersalny język frmalny służący d reprezentwania różnych danych w strukturalizwany spsób [Wikipedia] Wyszukiwanie pełntekstwe usługa umżliwiająca przeszukiwanie dużych fragmentów tekstów pd kątem znaczeń pszczególnych słów i całych fraz. HIERARCHYID biektwy typ danych, umżliwiający przechwywanie i bsługę danych hierarchicznych Slajd 6/16
Opis prblemu Wieldziedzinwy system głszeniwy (dpwiednik funkcjnalny Otmt) Przedmit głszenia scharakteryzwany dziesiątkami cech Hierarchiczna struktura kategrii głszeń Prblemy: Efektywne wyszukiwane głszeń p ich cechach, przykładw: 100 tys. głszeń * 30 cech = 3 mln wierszy Trudnści w szacwaniu dcelweg bciążenia systemu (wraz ze wzrstem ppularnści serwisu liczba internautów będzie rsła) Slajd 7/16
Schematy baz danych Eksperymentalny dbór mżliwych d zastswania wariantów schematów baz danych: Wariant klasyczny (3 PN, 2 warianty zapytań) Wariant zdenrmalizwany Wariant XML Frmatwanie nie uwzględniające typów danych Frmatwanie uwzględniające typy danych (walidacja XML Schema) Wariant z wyszukiwaniem pełntekstwym Cechy liczbwe w klumnach Identyfikacja mżliwych przedziałów, przypisanie unikalnych identyf. Slajd 8/16
Typwe zapytania Dwie typwe grupy zapytań bciążających bazę danych: Zapytania długim czasie realizacji Zapytania krótkim czasie realizacji występujące częst Typwe zapytania dla przedstawineg prblemu: Wyszukiwanie głszeń spełniających ustalne kryteria (cechy, kategrie, inne atrybuty głszenia np. cena) Spis głszeń w danej kategrii pdzielny na pdstrny (pdczas przeglądania głszeń na strnie www) Pbieranie wszystkich infrmacji danym głszeniu Slajd 9/16
Optymalizacja zapytań Cel: wyznaczenie jak najbardziej efektywneg planu realizacji zapytania (kryterium czas realizacji zapytania) Realizacja: Przygtwanie wstępnych wersji 15 zapytań Analiza planu wyknania zapytania wyszukanie wąskich gardeł wydajnściwych Dstrajanie zapytania przeredagwanie fragmentów zapytania sprawiających trudnści ptymalizatrwi Dbór i dstrajanie indeksów Slajd 10/16
Wyniki - ptymalizacja Średni czas realizacji zapytań znrm. intersect znrm. exists zdenrm. xml 1 xml 2 zapytanie 0 zapytanie 1 zapytanie 2 pełnt. 1 pełnt. 2 0 200 400 600 800 1000 1200 1400 1600 czas [ms] Slajd 11/16
Testy wydajnści Przygtwanie danych testwych Wykrzystanie danych zbliżnych d rzeczywistych Prcedura testwa Minimalizacja wpływu czynników zewnętrznych Uśredniny wynik z kilku pmiarów Czyszczenie pamięci pdręcznej (dane, plany zapytań) Pmiar wydajnści zapytań Zptymalizwane zapytania dla pszczególnych wariantów schematów baz danych Pmiar dla najlepszeg i najgrszeg przypadku (cache) Skalwalnść każdeg rzwiązania testy wielużytkwnikwe Slajd 12/16
BD Tester Aplikacja umżliwiająca przeprwadzenie wielużytkwnikwych testów bciążeniwych bazy danych Realizacja.NET C# 3.5, technlgia klient-serwer Mżliwści aplikacji: Generwanie lswych sekwencji testwych wg zdefiniwaneg scenariusza testweg Knfigurwanie przebiegu testu tylk na maszynie serwera Synchrnizacja przebiegu testów pmiędzy wielma maszynami klienckimi Kmunikacja z maszynami klienckimi w celu debrania wyników testów Slajd 13/16
Wyniki testy bciążeniwe Czas realizacji zapytań dla 1 instancji klienckiej znrm. intersect znrm. exists zdenrm. xml 1 xml 2 zapytanie 0 zapytanie 1 zapytanie 2 pełnt. 1 pełnt. 2 0 50 100 150 200 250 300 350 czas [s] Slajd 14/16
Wyniki testy bciążeniwe Czas realizacji zapytań dla 5 instancji klienckich znrm. intersect znrm. exists zdenrm. xml 1 xml 2 zapytanie 0 zapytanie 1 zapytanie 2 pełnt. 1 pełnt. 2 0 100 200 300 400 500 600 700 800 czas [s] Slajd 15/16
Pdsumwanie Na pdstawie przeprwadzneg prcesu ptymalizacji zapytań raz testów bciążeniwych mżna stwierdzić, że najwydajniejszy jest zdenrmalizwany wariant schematu bazy danych, a tym samym pstawina na wstępie hipteza jest błędna. Jednakże psiada n wiele wad funkcjnalnych, które graniczają jeg praktyczne zastswanie: Anmalie aktualizacji Utrata części infrmacji (np. cechy typu ple wybru) Kniecznść użycia instrukcji DDL zamiast DML (np. ddanie cechy) Nadzór nad indeksami i ich czaschłnne przebudwy Dziękuję za uwagę. Slajd 16/16