STUDIA INFORMATICA 2014 Volume 35 Number 2 (116) Radosław BOROŃSKI, Grzegorz BOCEWICZ Poltechnka Koszalńska, Wydzał Elektronk Informatyk INDEKSOWANIE TABEL DLA RÓŻNYCH GĘSTOŚCI GRUP ZAPYTAŃ SQL (NA PRZYKŁADZIE ORACLE 11G) Streszczene. Powszechne stosowane komercyjne narzędza doboru ndeksów dzałają na podstawe metod umożlwających ndeksowane tabel będących częścą nezależnych zapytań SQL. W artykule przedstawono deę ndeksowana tabel uwzględnającą gęstość grupy zapytań. Przedstawono wynk uzyskane autorską Metodą Doboru Indeksów (MDI), operającą sę na algorytme genetycznym. Przeprowadzone badana pokazują, że dla różnych gęstośc zastosowane ndeksu grupowego pozwala skrócć czas wykonana zapytań (o 15%), a także zmnejszyć rozmar ndeksów (o 68-90%). Słowa kluczowe: ndeks, ndeksowane, optymalzacja, SQL, SZBD TABLES INDEXING FOR VARIOUS DENSITIES OF SQL QUERIES GROUPS (EXAMPLE OF ORACLE 11G) Summary. Commonly used commercal tools are based on a methodology that enables tables ndexng for ndvdual SQL queres. The artcle presents an orgnal method, based on a genetc algorthm, for ndexng tables for groups of queres n a relatonal database. Conducted experments have shown that the use of ndces for a group of queres can reduce the group executon tme by 15% as well as can reduce the memory needs by 68-90%. Keywords: ndex, ndexng, database, query, optmzaton, SQL, RDBMS 1. Wstęp Problem doboru ndeksów (ang. Index Selecton Problem ISP) był już nejednokrotne omawany w lteraturze [1, 7, 8, 9, 12]. Znane są różne podejśca do optymalnego doboru ndeksów dla pojedynczych zapytań [10, 13, 14] zapytań grupowych [2, 5]. Można do nch
128 R. Borońsk, G. Bocewcz zalczyć metody operające sę na szacunkach optymalzatora kosztowego, metody operujące na plane wykonana zapytana czy metody analzujące tylko składnę semantyczną zapytana. Pommo upływu lat problem doboru ndeksów jest nadal ważny aktualny. Chocaż zaproponowane rozwązana prezentują nteresujące próby rozwązana problemu mają wele korzyśc (np. ndeksowane wększej lczby kolumn, elmnacja powtarzających sę struktur [11, 13]), ne są one wystarczające, aby móc zamplementować je w praktyce [14]. W dotychczasowych opracowanach zbyt mało uwag pośwęcono lcznym nedoskonałoścom, do których można zalczyć: neuwzględnane rozmaru czasu tworzena ndeksu czy ndeksowane pojedynczego zapytana. Pomnęce nnych zapytań odnoszących sę do tej samej tabel może skutkować utworzenem zbyt dużej lczby podobnych ndeksów. Mając powyższe na uwadze, warto podkreślć, że obecne dostępne narzędza komercyjne (np. Oracle Access Advsor, Toad) ne wykorzystują w pełn możlwośc ndeksowana tabel w ramach grup zapytań. Istneje potrzeba opracowana automatycznego mechanzmu, który umożlwłby uwzględnane zwązków pomędzy zapytanam w grupe sugerował struktury lepszych ndeksów (rys. 1). Celem artykułu jest przedstawene nowej koncepcj ndeksowana tabel w relacyjnych bazach danych. W przecweństwe do znanych metod [1, 7, 8], uwzględnających ndeksowane tabel dla pojedynczych zapytań, proponowane rozwązane umożlwa wyznaczane ndeksów dla całej grupy zapytań jako całośc, dla której poszukwane są ndeksy. Możlwość analzy grupowych zapytań jest szczególne stotna w bazach danych systemów wspomagana produkcj. Bazy danych tego typu charakteryzują sę konecznoścą wykonana tysęcy zapytań w cągu dna. A B Rys. 1. Podejśca doboru ndeksów: klasyczne [7, 10] (A), grupowe (B) Fg. 1. Classc [7, 10] (A) and grouped (B) ndex selecton approaches W tym kontekśce artykuł może być postrzegany jako kontynuacja naszych badań przeprowadzonych w [2, 3, 4, 5], w których podjęto próbę wyznaczena właścwośc grupowych zapytań SQL. W artykule przedstawono rozszerzaną wersję doboru ndeksów. Do rozwąza-
Indeksowane tabel dla różnych gęstośc grup zapytań SQL 129 na tego problemu zaproponowano orygnalną metodę, operającą sę na algorytme ewolucyjnym, która może być wykorzystana w dowolnej relacyjnej baze danych. Rozdzał 2 przedstawa sformułowane problemu doboru ndeksów dla relacyjnych baz danych. Rozdzał 3 opsuje defncję gęstośc zapytań autorską Metodę Doboru Indeksów (MDI). W rozdzale 4 został przedstawony plan eksperymentu wraz z wynkam. Rozdzał 5 podsumowuje zagadnene przedstawa kerunek dalszych badań. 2. Sformułowane problemu W pracy przyjęto, że problem doboru ndeksów jest defnowany następująco. Dany jest zbór tabel: T = (T 1,,T,,T n ) (1) charakteryzowany przez zbór kolumn wchodzących w skład tych tabel: K = (k 1,1,,k 1,l(1),,k,j,,k n,1,,) (2) gdze: k,j j-ta kolumna tabel T. Każdej kolumne k,j odpowada zbór wartośc V(k,j ) (zbór komórek) wchodzących w skład tej kolumny. Dla zboru tabel T mogą być formułowane różne zapytana Q (w języku SQL są to zapytana typu SELECT). Zapytana te są stawane względem zadanego zboru kolumn K* K. Wynkem zapytana Q jest zbór: gdze: Y gdze: A k V k j (3) n, K*, j Y1 Y... Yn loczyn kartezjańsk zborów Y 1,,Y n. 1 2 Dla zadanej bazy danych DB przyjmuje sę, że A jest wynkem następującej funkcj: * A Q K Op DB (4), * K podzbór kolumn wykorzystanych w ramach zapytana Q, Op(DB) zbór operatorów dostępnych w baze DB, z których zbudowana jest relacja określająca zapytane Q. Czas zwązany z wyznaczenem zboru A jest zależny od wykorzystywanej bazy DB (algorytmów przeszukwana, struktury ndeksów tp.) oraz przyjętego zboru ndeksów * * J (gdze: P K P zbór potęgowy K * K ). W ogólnym przypadku przyjmuje sę, że czas wykonywana zapytana Q w zadanej baze DB jest defnowany jako: t(q, J, DB). Ze względu na to, że rozważana dotyczą wyłączne wpływu ndeksów J (warunk pracy bazy określone w ramach DB są uznawane za nezmenne), czas wykonana zapytana Q będze defnowany jako T (J).
130 R. Borońsk, G. Bocewcz Zbór ndeksów J oraz tabele wykorzystywane w ramach Q są charakteryzowane odpowedno przez rozmary wykorzystywanej pamęc S(J) rozmar ndeksów, S(Q ) rozmar ndeksowanych tabel (tabel użytych w ramach Q ). Stosunek tych welkośc określa współczynnk wykorzystana przestrzen dyskowej ndeksów J względem welkośc tabel w zapytanu Q : J Q m J Q. S, S W ogólnośc można rozważać grupę zapytań Q = {Q 1, Q 2,, Q n } charakteryzowaną przez następujące welkośc: zbór ndeksów: J P K *, (5) czas wykonywana zapytań całej grupy Q: n J t, t 1 J (6) współczynnk wykorzystana przestrzen dyskowej: n 1 J S S mj, Q. (7) Q W kontekśce tak zdefnowanych parametrów rozważany Problem Doboru Indeksów wąże sę z odpowedzą na pytane: Jak zbór ndeksów J, utworzonych dla nezmennej grupy zapytań Q, spełnających warunek: h m J, Q r (współczynnk wykorzystana przestrzen ne przekracza zadanej wartośc r h ), mnmalzuje czas wykonywana zapytań bazy danych DB: t(j) mn? 3. Metoda Doboru Indeksów W pracach [3, 4] została przedstawona metoda rozwązywana Problemu Doboru Indeksów wykorzystująca deę algorytmów genetycznych Metoda Doboru Indeksów. Stanow ona alternatywę dla metod już stnejących (mplementowanych w komercyjnych Doradcach Indeksowych), które w odróżnenu od proponowanego podejśca ne uwzględnają ndywdualnych cech środowska bazodanowego (np. algorytmu przeszukwana struktur drzew ndeksowych). Metoda Doboru Indeksów (MDI) dla grupy zapytań Q ma 5 etapów [6]: generacja początkowej populacj ndeksów, składająca sę ze stałej lczby osobnków, selekcja najlepszych ndeksów w populacj, mutacja krzyżowane ndeksów, sprawdzene warunków stopu, generacja nowej populacj.
Indeksowane tabel dla różnych gęstośc grup zapytań SQL 131 Grafczna lustracja Metody Doboru Indeksów (MDI) została przedstawona na rys. 2. Do zalet stosowana MDI należy zalczyć możlwość wyznaczana mnejszej lczby ndeksów nż po zastosowanu DI, które raz wyznaczone, mogą być wykorzystywane przy welu zapytanach. Wadą metody MDI jest znaczny czas (duża lczba teracj) potrzebny na uzyskane zbeżnośc rozwązań. W praktyce oznacza to, że aby otrzymać rozwązane lepsze nż w przypadku stosowana Doradców Indeksowych, należy uruchomć grupę zapytań welokrotne. START Generacja populacj początkowej Utworzene ndeksu Wyznaczene czasu t(j) dla beżącej populacj Warunek stopu Ht T N Warunek stopu p T N Generacja nowej populacj KONIEC Losowane np par osobnków Wybór osobnka, dla którego t(j) -> mn Mutacja osobnka z prawdopodob. Pk Krzyżowane osobnków Rys. 2. Grafczna lustracja Metody Doboru Indeksów (MDI) dla grupy zapytań Q Fg. 2. Graphc llustraton of Index Selecton Method (MDI) for a group of queres Q Na rys. 3 przedstawono sposób przetwarzana grupy zapytań Q przez Doradcę Indeksowego (DI) Metodę Doboru Indeksów. Grupa zapytań Q zostaje poddana dzałanu DI tylko
132 R. Borońsk, G. Bocewcz raz, a wypracowane ndeksy J' są nezmenne. DI ne potrzebuje dodatkowych teracj na uzyskane zbeżnych rozwązań. Opera sę on na koszce optymalzatora, analze planu zapytana lub danych hstorycznych bazy. W wększośc przypadków DI znajduje ndeksy dla każdego zapytana z grupy Q osobno. Grupa zapytań Q zostaje poddana dzałanu MDI klkakrotne, a wypracowane ndeksy J zmenają sę z każdą teracją. Oznacza to, że Metoda dostosowuje sę do warunków panujących w baze danych czasu przetwarzana całej grupy Q. Oznacza to, że czas wykonywana grupy zapytań w beżącej teracj jest porównywany z czasem z teracj poprzednej. Doradcy Indeksow DI Metoda Doboru Indeksów MDI Baza Danych Rys. 3. Przetwarzane grupy zapytań Q przez DI MDI Fg. 3. Grouped queres Q processng by DI and MDI Istneją sytuacje, w których proponowana wolnejsza Metoda Doboru Indeksów (MDI) daje te same rezultaty (merzone jako czas wykonana grupy zapytań Q) co szybcy Doradc Indeksow (DI). Mając to na uwadze, należy określć, przy jakch warunkach zboru zapytań Q MDI staje sę opłacalna, tzn. kedy ndeksy J zaproponowane przez MDI pozwolą wykonać grupę zapytań szybcej nż ndeksy ze zboru ndeksów J' (DI). Aby odpowedzeć na to pytane, przeprowadzono badana, w których arbtralne zbór zapytań Q jest ocenany pod względem tzw. parametru gęstośc grupy zapytań SQL [2, 3, 4]. Gęstość ρ określająca wzajemną relację pomędzy zapytanam grupy Q jest lczona jako stosunek lczby kolumn współdzelonych do lczby wszystkch kolumn występujących w grupe zapytań Q: KW * (8) K * gdze: ρ [0,1], ρ = 0 brak relacj pomędzy zapytanam w grupe, ρ = 1 występowane każdej kolumny tabel w każdym zapytanu w grupe, K* zbór kolumn tabel w grupy zapytań Q, KW* K * podzbór kolumn występujących co najmnej w dwóch zapytanach grupy Q. W pracach [2, 3, 4] dostrzeżono, że stosowane MDI dla newelkch grup zapytań Q (w których współczynnk gęstośc ρ > 0) pozwala uzyskać ndeksy charakteryzujące sę krót-
Indeksowane tabel dla różnych gęstośc grup zapytań SQL 133 szym czasem przetwarzana grupy Q nż ndeksy otrzymane od komercyjnych doradców ndeksowych. Korzyść jest tym wększa, m wększa jest wartość ρ. W kolejnym rozdzale przedstawono eksperymenty, które pozwolły zweryfkować ten warunek w rzeczywstej baze danych. 4. Eksperymenty Celem przeprowadzonych eksperymentów była weryfkacja skutecznośc metody MDI dla grup zapytań Q o strukturach rozmarze spotykanych w praktyce. 4.1. Środowsko testowe Badana testowe zostały przeprowadzone na dużej (1.2TB) relacyjnej baze danych Oracle (11.2.0.3) dużego koncernu samochodowego. Na potrzeby testu utworzono kope 3 tabel zawerających 10 7 rekordów danych produkcyjnych. Potrzeba utworzena kop tabel jest usprawedlwona możlwoścą przypadkowego zablokowana tabel produkcyjnej w sytuacj jednoczesnego czytana jej przez dwa lub węcej procesów bazodanowych. Na potrzeby eksperymentu został utworzony program komputerowy, napsany w środowsku Lazarus (Free Pascal IDE). Interfejs aplkacj przedstawono na rys. 4. Z klkuset dostępnych w baze danych zapytań SQL zostały wyselekcjonowane 3 grupy zapytań: Q 1, Q 2, Q 3, które charakteryzowały sę czasem przetwarzana krótszym nż czas przetwarzana jednego pełnego cyklu produkcyjnego: grupa Q 1, składająca sę z 31 zapytań, w której są 24 kolumny, z których 11 kolumn występuje w węcej nż jednym zapytanu, grupa Q 2, składająca sę z 10 zapytań, w której jest 16 kolumn, z których 12 kolumn występuje w węcej nż jednym zapytanu, grupa Q 3, składająca sę z 41 zapytań, w której jest 39 kolumn, z których 23 kolumny występują w węcej nż jednym zapytanu. Cechą charakterystyczną systemu nformatycznego generującego zapytana jest to, że wybrane zapytana Q są powtarzane cyklczne. Przykładowo badane zapytana Q 1, Q 2, Q 3 trafają do bazy raz dzenne. Dośwadczene pomary testowe przeprowadzono dla każdej z grup zapytań Q osobno.
134 R. Borońsk, G. Bocewcz Rys. 4. Przykład dzałana programu dla grupy zapytań Q 2 Fg. 4. Example of the computer program runs for a group of queres Q 2 4.2. Plan eksperymentu W środowsku opsanym powyżej raz dzenne baza danych otrzymywała zapytana Q j odpowedne dla swojej grupy Q. Grupy zapytań Q charakteryzowały sę następującą gęstoścą: ρ 1 = 11/24 = 0,46, ρ 2 = 12/16 = 0,75, ρ 3 = 23/39 = 0,59. Należy zwrócć uwagę, że w każdej z grup zapytań Q został zachowany warunek gęstośc ρ > 0. Oznacza to, że w każdej grupe zapytań Q znajdowały sę kolumny * K, j występujące w węcej nż jednym zapytanu Q j. Można zatem spodzewać sę korzyśc płynącej z zastosowana metody MDI jej przewag nad rozwązanam komercyjnym (DI). Dla badanych grup zapytań Q została przeprowadzona analza porównawcza. Czasy tworzena grup ndeksów wykonana grup zapytań dla metody MDI porównano z czasam uzyskanym w wynku dzałana zewnętrznego Doradcy Indeksowego. Do realzacj tego zadana wykorzystano komponent Oracle Access Advsor, będący częścą komercyjnego systemu zarządzana baz danych Oracle 11g. Obydwe metody wypracowywały ndeksy, które były następne porównane. Generowane jednego kroku (jednego pełnego cyklu) odpowadało generowanu jednej populacj w metodze MDI. Eksperyment był prowadzony przez 60 dn.
Indeksowane tabel dla różnych gęstośc grup zapytań SQL 135 Przebadane zostały 3 grupy zapytań Q. Wynk eksperymentu przedstawono w tabelach 1, 2, 3. Tabela 1 Porównane wynków dla grupy Q 1 Grupa Q 1 (ρ 1 = 0,46) DI MDI Różnca (S(Q ) = 4075MB) Czas wykonana zapytań t(j) 701 s 630 s 71 s Lczba ndeksów J 1 1 0 Rozmar ndeksów S(J) 728 MB 232 MB 496 MB S( J ) m( J, Q ) S( Q ) 0,178 0,056 0,121 Czas potrzebny na uzyskane wynku 20 s 12 020 s 12 000 s Tabela 2 Porównane wynków dla grupy Q 2 Grupa Q 2 (ρ 2 = 0,75) DI MDI Różnca (S(Q ) = 19199MB) Czas wykonana zapytań t(j) 627 s 535 s 92 s Lczba ndeksów J 4 1-3 Rozmar ndeksów S(J) 814 MB 296 MB 518 MB S( J ) m( J, Q ) S( Q ) 0,042 0,015 0,027 Czas potrzebny na uzyskane wynku 5 s 54 000 s 53 995 s Tabela 3 Porównane wynków dla grupy Q 3 Grupa Q 3 (ρ 3 = 0,59) DI MDI Różnca (S(Q ) = 23274MB) Czas wykonana zapytań t(j) 1264 s 1252 s 12 s Lczba ndeksów J 7 1-6 Rozmar ndeksów S(J) 2434 MB 232 MB 2202 MB S( J ) m( J, Q ) S( Q ) 0,104 0,009 0,095 Czas potrzebny na uzyskane wynku 64 s 28 000 s 27 936 s 5. Podsumowane Rozważana teoretyczne odnoszące sę do grupy ndeksów, zweryfkowane eksperymentalne na dużej baze produkcyjnej w rzeczywstych warunkach, przynosły podobny efekt. Warto zauważyć, że rosnąca gęstość daje lepsze wynk uzyskane przez MDI w stosunku do DI. Czas potrzebny na analzę grupy zapytań propozycje ndeksów jest dużo krótszy w przypadku doradcy ndeksowego w porównanu z proponowaną metodą. Wynka to ze
136 R. Borońsk, G. Bocewcz sposobu dzałana doradcy badana tylko kosztu przetwarzanej grupy zapytań, a ne z faktycznego czasu ch wykonana (cecha MDI). Często analza taka jest błędna, gdyż opera sę tylko na danych szacunkowych, a ne pomarowych. Ne są brane pod uwagę stotne elementy przetwarzana bazy danych, take jak np. struktura fzyczna serwera czy przetwarzane nnej grupy zapytań w tym samym czase. Wadą podejśca MDI jest lczba dodatkowych teracj wymaganych do ustablzowana sę populacj osągnęca wartośc optymalnych. Nemnej jednak MDI może dzałać w trakce cyklcznego wykonywana grupy zapytań, przez co ne powoduje opóźnena w uzyskanu wynku. Jak to zauważono poprzedno, w wynku analzy prostych zapytań potwerdzono własność polegającą na tym, że wraz ze wzrostem gęstośc zapytań poprawa sę równeż skuteczność tych ndeksów wyrażana przez zajmowaną pamęć czas (np. czas wykonana grupy Q 2 lepszy o 15%, rozmar ndeksów S(J) mnejszy o 68% dla grupy Q 1, rozmar ndeksów S(J) mnejszy o 90% dla grupy Q 3 ). W przypadku grupy zapytań Q 1 zastosowane wyznaczonego zboru ndeksów pozwala zaoszczędzć w skal roku 33 000 sekund, co w przyblżenu równa sę 53 dnom produkcyjnym. Oszczędność pamęc w rozważanym przypadku jest z kole na pozome 90%. Dalsze badana będą koncentrowały sę na ocene wpływu gęstośc zapytań na rozmar ndeksów czas przetwarzana grupy zapytań. BIBLIOGRAFIA 1. Barcucc E., Pnzan R., Sprugnol R.: Optmal selecton of secondary ndexes. IEEE Transactons on Software Engneerng, Vol. 16(1), 1990, s. 32 38. 2. Borońsk R., Bocewcz G., Wójck R.: Grouped queres ndexng for relatonal database. eknow 2013: The Ffth Internatonal Conference on Informaton, Process, and Knowledge Management, Iara Journals, 2013, s. 123 129. 3. Borońsk R., Bocewcz G.: Indexes drven mechansm for grouped SQL queres. Pomary, Automatyka, Robotyka, nr 2, 2013, s. 135 142. 4. Borońsk R.: Problem doboru ndeksów dla powązanych zapytań SQL. [w:] Matuszek J., Gregor M., Mceta B. (red.): Metody technk zarządzana w nżyner produkcj, rocznk VI, Wydawnctwo Naukowe Akadem Technczno-Humanstycznej w Belsku- Bałej, Belsko-Bała 2013, s. 27 42. 5. Borońsk R., Bocewcz G.: Mult-crtera ndex selecton for grouped SQL queres. Communcatons n Computer and Informaton Scence, Vol. 370, Sprnger, 2013, s. 573 581. 6. Borońsk R., Bocewcz G.: Relatonal database ndex selecton algorthm (example of Oracle 11g). Communcatons n Computer and Informaton Scence, Sprnger, 2014 (n prnt).
Indeksowane tabel dla różnych gęstośc grup zapytań SQL 137 7. Bruno N., Chaudhur S.: An onlne approach to physcal desgn tunng. Internatonal Conference on Data Engneerng, 2007, s. 826 835. 8. Bruno N., Chaudhur S.: Automatc physcal database tunng: a relaxaton-based approach. ACM SIGMOD Internatonal Conference on Management of Data, 2005, s. 227 238. 9. Caprara A., Fschett M., Mao D.: Exact and approxmate algorthms for the ndex selecton problem n physcal database desgn. IEEE Transactons on Knowledge and Data Engneerng, Vol. 7(6), 1995, s. 955 967. 10. Chaudhur S., Narasayya V.: An effcent Cost-Drven Index Selecton Tool for MS SQL Server. Very Large Data Bases Endowment Inc., 1997. 11. Kołaczkowsk P., Rybńsk H.: Automatc Index Selecton n RDBMS by Explorng Query Executon Plan Space. Studes n Computatonal Intellgence, Vol. 223, Sprnger, 2009, s. 3 24. 12. Kratca J., Ljubc I., Tosc D.: A Genetc Algorthm for the Index Selecton Problem. EvoWorkshops 03. Proceedngs of the 2003 Internatonal Conference on Applcatons of Evolutonary Computng, 2003. 13. Sattler K.-U., Schallehn E., Gest I.: Autonomous query-drven ndex tunng. Internatonal Database Engneerng and Applcatons Symposum, 2004, s. 439 448. 14. Schnatter K., Abteboul S., Mlo T., Polyzots N.: On-lne ndex selecton for shftng workloads. Internatonal Workshop on Self-Managng Database Systems, 2007, s. 459 468. Wpłynęło do Redakcj 30 styczna 2014 r. Abstract Fndng a good ndex for a database table s crucal for every relatonal database system, not only from the productvty pont but also because of the cost aspect. Index may be mportant for a relatonal database to process queres wth reasonable effcency, but the selecton of a good ndex may be dffcult. Presented examples show that there s a need for fndng an automatc ndex selecton mechansm for grouped queres. Practce shows that n some crcumstances an ndex focused on grouped queres may gve better results and also enables user to save tme needed for ndex creaton. It also saves system hardware resources (dsk space). In the examples t s shown that grouped queres ndexes are more effectve than those obtaned by classcal methods mplemented by commercal tools.
138 R. Borońsk, G. Bocewcz Adresy Radosław BOROŃSKI: Poltechnka Koszalńska, Wydzał Elektronk Informatyk, ul. Śnadeckch 2, 75-453 Koszaln, Polska, radoslaw.boronsk@tu.koszaln.pl. Grzegorz BOCEWICZ: Poltechnka Koszalńska, Wydzał Elektronk Informatyk, ul. Śnadeckch 2, 75-453 Koszaln, Polska, bocewcz@e.tu.koszaln.pl.