diff --git a/chapters/thesis/appendix04_calling_script.sh b/chapters/thesis/appendix04_calling_script.sh index 94258cd..22435b9 100644 --- a/chapters/thesis/appendix04_calling_script.sh +++ b/chapters/thesis/appendix04_calling_script.sh @@ -79,6 +79,9 @@ dcstart() { dcstop() { sudo docker compose -f $COMPOSE_FILE stop } +dcres() { + sudo docker compose -f $COMPOSE_FILE down +} dcstats() { sudo docker stats } @@ -101,6 +104,7 @@ for name in "$@"; do dcinit) dccreate ;; dcstart) dcstart ;; dcstop) dcstop ;; + dcres) dcres ;; dcstats) dcstats ;; measinit) pginit @@ -150,8 +154,9 @@ for name in "$@"; do echo "" echo "*** docker ***" echo " dcinit Docker erstellen" - echo " dcstart Docker Container erstellen und starten" - echo " dcstop Docker Container stoppen und loeschen" + echo " dcstart Docker Container starten" + echo " dcstop Docker Container stoppen" + echo " dcres Docker Container stoppen und loeschen" echo " dcstats Docker live Statistik anzeigen" echo "" echo "*** combine cmds ***" diff --git a/chapters/thesis/chapter05.tex b/chapters/thesis/chapter05.tex index e76f008..e657eda 100644 --- a/chapters/thesis/chapter05.tex +++ b/chapters/thesis/chapter05.tex @@ -34,12 +34,14 @@ Der Speicherbedarf steigt auch relative gleichmässig, was nicht recht ins Bild gehalten werden sollten. \mytodos{hier noch text einfügen, der erklärt wie die Spalten zu werten sind, also Aufrufzeit ist kürzer gleich besser} +\mytodos{Diese Tabelle vielleicht auch einfach komplett streichen, da der Datenbestand anders ist, und das wichtigste +die Zeit der SQL-Abfragen nicht sichtbar ist} \begin{table}[h!] \centering \begin{tabular}{|r|r|r|r|r|r|r|r|} \hline - & \multicolumn{3}{|c|}{Aufrufzeit (ms)} & & \multicolumn{3}{|c|}{RSS (MB)} \\ + & \multicolumn{3}{c}{Aufrufzeit (ms)} & & \multicolumn{3}{|c|}{RSS (MB)} \\ \hline \# & min & avg & max & Queries & davor & danach & diff \\ \hline @@ -69,18 +71,20 @@ Ausführungszeiten der SQL-Abfragen wurden nur die 2 Hauptabfragen auf der Docum Dokumente, sowie den letzten und ersten Eintrag der Tabelle. \mytodos{es müssen die 6 Anfragen sein, document, first/last, documentaddresseeperson, documentcoauthorperson, documentfacsimile und count} +% document, first/last, documentaddresseeperson, documentcoauthorperson, documentfacsimile und count \begin{table}[h!] \centering \begin{tabular}{|r|r|r|r|r|r|r|r|r|} \hline - & \multicolumn{3}{|c|}{Aufrufzeit (ms)} & \multicolumn{2}{|c|}{Queries (ms)} & \multicolumn{3}{|c|}{Memory (MB)} \\ + & \multicolumn{3}{c|}{Aufrufzeit (ms)} & \multicolumn{2}{c|}{Queries} & \multicolumn{3}{c|}{Memory (MB)} \\ \hline - \# & min & avg & max & cnt & sum & davor & danach & diff \\ + \# & min & avg & max & \#-avg & avg(ms) & davor & danach & diff \\ \hline - 1 & 354 & 649 & 2225 & 12240 & 181 & 967 & 1004 & 37 \\ - 2 & 288 & 328 & 409 & 12080 & 175 & 1004 & 1113 & 109 \\ % 356ms - 3 & 294 & 449 & 746 & 12080 & 177 & 1113 & 1258 & 145 \\ % 533ms - 4 & 289 & 371 & 634 & 12080 & 180 & 1279 & 1541 & 262 \\ % 713ms + 1 & 360 & 623 & 2079 & 1224.0 & 30.3 & 872.8 & 914.1 & 41.3 \\ % 12240 - 303 ms (135+ 79+ 39+ 22+17+11) (#2-6,8) + 2 & 331 & 372 & 430 & 1208.0 & 31.2 & 914.5 & 1008.0 & 93.5 \\ % 24320 - 615 ms (270+156+ 78+ 56+34+21) (#2-7) + 3 & 291 & 428 & 815 & 1208.0 & 33.5 & 1030.0 & 1297.0 & 267.0 \\ % 36400 - 950 ms (406+256+118+ 79+55+36) (#2-7) + 4 & 288 & 357 & 433 & 1208.0 & 33.7 & 1299.0 & 1461.0 & 162.0 \\ % 48480 - 1287 ms (564+334+167+105+72+45) (#2-7) + 5 & 294 & 404 & 499 & 1208.0 & 32.9 & 1462.0 & 1638.0 & 176.0 \\ % 60560 - 1616 ms (699+428+210+128+92+59) (#2-7) \hline \end{tabular} \caption{Messung ohne Caches im Docker} @@ -97,7 +101,7 @@ Die Cache-Einstellung von OpenJPA werden über die zwei Einstellungen \texttt{op Objekte aus dem Cache entfernt und in eine SoftReferenceMap übertragen. Zuerst wird mit aktivierten Cache mit einer Cache-Größe von 1000 Elemente getestet. Wie in \ref{tbl:measure-ojpa-active} -zu sehen, dauert auch hier der erste Aufruf minimal länger als ohne akiviertem Cache. Alle Nachfolgenden Aufrufe +zu sehen, dauert auch hier der erste Aufruf minimal länger als ohne aktiviertem Cache. Alle Nachfolgenden Aufrufe wiederrum sind um 100ms schneller in der Verarbeitung. Auch bei der Anzahl der Anfragen an die Datenbank kann mehr den Rückgang der Anfragen sehr gut sehen. Aktuell kann die Verringerung des wachsenden Speicherbedarfs nur nicht erklärt werden. @@ -106,15 +110,15 @@ werden. \centering \begin{tabular}{|r|r|r|r|r|r|r|r|r|} \hline - & \multicolumn{3}{|c|}{Aufrufzeit (ms)} & \multicolumn{2}{|c|}{Queries (ms)} & \multicolumn{3}{|c|}{Memory (MB)} \\ + & \multicolumn{3}{c|}{Aufrufzeit (ms)} & \multicolumn{2}{c|}{Queries} & \multicolumn{3}{c|}{Memory (MB)} \\ \hline - \# & min & avg & max & cnt & sum & davor & danach & diff \\ + \# & min & avg & max & \#-avg & avg(ms) & davor & danach & diff \\ \hline - 1 & 338 & 567 & 1853 & 7418 & 288 & 874 & 923 & 49 \\ % 7418 - 288 ms (145+ 42+ 40+ 24+18+ 8+ 7+ 4) (#2-8,12) - 2 & 235 & 290 & 460 & 6852 & 258 & 923 & 926 & 3 \\ % 14270 - 546 ms (282+ 81+ 70+ 47+33+14+11+ 8) (#2-9) - 3 & 225 & 254 & 313 & 6836 & 276 & 927 & 1018 & 90 \\ % 21106 - 822 ms (430+120+ 99+ 77+49+20+16+11) (#2-9) - 4 & 235 & 289 & 403 & 6839 & 276 & 1018 & 1018 & 0 \\ % 27945 - 1098 ms (569+160+137+ 99+68+26+22+17) (#2-9) - 5 & 193 & 265 & 359 & 6879 & 276 & 1025 & 1140 & 115 \\ % 34824 - 1374 ms (704+202+171+128+86+34+27+22) (#2-9) + 1 & 338 & 567 & 1853 & 741.8 & 28.8 & 874.8 & 923.5 & 48.7 \\ % 7418 - 288 ms (145+ 42+ 40+ 24+18+ 8+ 7+ 4) (#2-8,12) + 2 & 235 & 290 & 460 & 685.2 & 25.8 & 923.5 & 926.4 & 2.9 \\ % 14270 - 546 ms (282+ 81+ 70+ 47+33+14+11+ 8) (#2-9) + 3 & 225 & 254 & 313 & 683.6 & 27.6 & 927.4 & 1018.0 & 90.6 \\ % 21106 - 822 ms (430+120+ 99+ 77+49+20+16+11) (#2-9) + 4 & 235 & 289 & 403 & 683.9 & 27.6 & 1018.0 & 1018.0 & 0.0 \\ % 27945 - 1098 ms (569+160+137+ 99+68+26+22+17) (#2-9) + 5 & 193 & 265 & 359 & 687.9 & 27.6 & 1025.0 & 1140.0 & 115.0 \\ % 34824 - 1374 ms (704+202+171+128+86+34+27+22) (#2-9) \hline \end{tabular} \caption{Messung mit OpenJPA-Cache und Größe auf 1000} @@ -131,15 +135,15 @@ beschleunigt werden konnte. \centering \begin{tabular}{|r|r|r|r|r|r|r|r|r|} \hline - & \multicolumn{3}{|c|}{Aufrufzeit (ms)} & \multicolumn{2}{|c|}{Queries (ms)} & \multicolumn{3}{|c|}{Memory (MB)} \\ + & \multicolumn{3}{c|}{Aufrufzeit (ms)} & \multicolumn{2}{c|}{Queries} & \multicolumn{3}{c|}{Memory (MB)} \\ \hline - \# & min & avg & max & cnt & sum & davor & danach & diff \\ + \# & min & avg & max & \#-avg & avg(ms) & davor & danach & diff \\ \hline - 1 & 151 & 368 & 1904 & 1422 & 208 & 878.1 & 919.9 & 41.8 \\ % 1422 - 208 ms (133+ 40+ 23+9+2+1) (#2,4-6,10,12) - 2 & 133 & 143 & 159 & 60 & 205 & 919.8 & 921.0 & 1.2 \\ % 1482 - 413 ms (274+ 80+ 47+9+2+1) (#2-3,5,6,10,12) - 3 & 120 & 126 & 132 & 60 & 199 & 922.8 & 924.1 & 1.3 \\ % 1542 - 612 ms (412+119+ 69+9+2+1) (#2,3,5,6,10,12) - 4 & 120 & 124 & 128 & 60 & 214 & 924.1 & 925.4 & 1.3 \\ % 1602 - 826 ms (550+168+ 96+9+2+1) (#2-4,6,10,12) - 5 & 109 & 114 & 131 & 60 & 197 & 926.1 & 926.8 & 0.7 \\ % 1662 - 1023 ms (683+209+119+9+2+1) (#2-4,6,10,12) + 1 & 151 & 368 & 1904 & 142.2 & 20.8 & 878.1 & 919.9 & 41.8 \\ % 1422 - 208 ms (133+ 40+ 23+9+2+1) (#2,4-6,10,12) + 2 & 133 & 143 & 159 & 6.0 & 20.5 & 919.8 & 921.0 & 1.2 \\ % 1482 - 413 ms (274+ 80+ 47+9+2+1) (#2-3,5,6,10,12) + 3 & 120 & 126 & 132 & 6.0 & 19.9 & 922.8 & 924.1 & 1.3 \\ % 1542 - 612 ms (412+119+ 69+9+2+1) (#2,3,5,6,10,12) + 4 & 120 & 124 & 128 & 6.0 & 21.4 & 924.1 & 925.4 & 1.3 \\ % 1602 - 826 ms (550+168+ 96+9+2+1) (#2-4,6,10,12) + 5 & 109 & 114 & 131 & 6.0 & 19.7 & 926.1 & 926.8 & 0.7 \\ % 1662 - 1023 ms (683+209+119+9+2+1) (#2-4,6,10,12) \hline \end{tabular} \caption{Messung mit OpenJPA-Cache und Größe auf 10000} @@ -407,18 +411,20 @@ LEFT JOIN sitecity sc ON sc.id = d.city_id; \end{lstlisting} % document, first/last, documentaddresseeperson, documentcoauthorperson, documentfacsimile und count +% document, count, first/last \begin{table}[h!] \centering - \begin{tabular}{|r|r|r|r|r|r|r|r|} + \begin{tabular}{|r|r|r|r|r|r|r|r|r|} \hline - & \multicolumn{3}{|c|}{Aufrufzeit (ms)} & & \multicolumn{3}{|c|}{RSS (MB)} \\ + & \multicolumn{3}{c|}{Aufrufzeit (ms)} & \multicolumn{2}{c|}{Queries} & \multicolumn{3}{c|}{Memory (MB)} \\ \hline - \# & min & avg & max & Queries & davor & danach & diff \\ + \# & min & avg & max & \#-avg & avg(ms) & davor & danach & diff \\ \hline - 1 & 364 & 472 & 1225 & 306 & 821.03 & 890.15 & xxx.xx \\ - 2 & 345 & 361 & 290 & 100 & 839.89 & 852.26 & xxx.xx \\ - 3 & xxx & xxx & xxx & xxxxx & xxxx.xx & xxxx.xx & xxx.xx \\ - 4 & xxx & xxx & xxx & xxxxx & xxxx.xx & xxxx.xx & xxx.xx \\ + 1 & 203 & 315 & 808 & 17.8 & 3.0 & 851.4 & 883.9 & 32.5 \\ % 178 - 30 ms (19+11+0) (#2,4,8) + 2 & 154 & 172 & 187 & 9.0 & 2.2 & 883.2 & 887.0 & 3.8 \\ % 268 - 52 ms (33+18+1) (#2,3,8) + 3 & 145 & 151 & 163 & 9.0 & 2.8 & 887.7 & 895.3 & 7.6 \\ % 358 - 80 ms (52+27+1) (#2,3,8) + 4 & 132 & 143 & 152 & 9.0 & 2.8 & 896.0 & 900.0 & 4.0 \\ % 448 - 108 ms (70+37+1) (#2,3,8) + 5 & 121 & 125 & 132 & 9.0 & 2.4 & 900.6 & 901.0 & 0.4 \\ % 538 - 132 ms (85+46+1) (#2,3,8) \hline \end{tabular} \caption{Messung mit Materialized View} diff --git a/marco-galster-config.tex b/marco-galster-config.tex index ce1d20c..18d84e4 100644 --- a/marco-galster-config.tex +++ b/marco-galster-config.tex @@ -25,7 +25,7 @@ \newcommand{\myUni}{FernUniversit\"at in Hagen\xspace} \newcommand{\mySubjectArea}{Lehrgebiet Datenbanken und Informationssysteme\xspace} \newcommand{\myLocation}{Höchstadt\xspace} -\newcommand{\myTime}{25. Februar 2024\xspace} +\newcommand{\myTime}{21. August 2024\xspace} \newcommand{\myVersion}{version 1.0\xspace} % **************************************************************************************************** diff --git a/thesis-beamer.pdf b/thesis-beamer.pdf index 8a26db6..1a22d47 100644 Binary files a/thesis-beamer.pdf and b/thesis-beamer.pdf differ diff --git a/thesis-beamer.tex b/thesis-beamer.tex index 1d81a92..e40be47 100644 --- a/thesis-beamer.tex +++ b/thesis-beamer.tex @@ -64,7 +64,7 @@ \node (JPA) [block,below of=EJB] {Java Persistance API}; \node (openJPA) [block, below of=JPA] {OpenJPA Cache}; \node (fitGlassfish) [rounded corners,fit=(JSF) (EJB) (JPA) (openJPA)] {}; - \node [left] at (fitGlassfish.west) {Glassfish}; + \node [left] at (fitGlassfish.west) [text width=1.5cm] {Glassfish/ Payara}; \node (memoryBuffers) [block, below of=openJPA] {Memory Buffers}; \node (services) [block, right of=memoryBuffers, xshift=2cm] {Services}; @@ -92,22 +92,212 @@ \section{Untersuchungen} \begin{frame} \frametitle{Allgemein} - --- Untersuchung vorher --- + \begin{itemize} + \item Verwendung von Docker, zur Performance-Limitierung + \item Eigene Container für die Datenbank und den Webserver + \item Für die Untersuchung wird nur die Dokumentenliste beobachtet + \item OutOfMemory-Ausnahme ausgelöst nach dem vierten Script Aufruf ($\sim$40 Webseitenaufrufe) + \item Vor jeder Messung werden die Container neugestartet und die Startroutinen abgewartet + \end{itemize} +\end{frame} + +\subsection{Ohne Cache} +\begin{frame} + \frametitle{Ohne Cache} + \begin{columns} + \onslide<2->{ + \column{0.5\textwidth} + \begin{itemize} + \item Auffälliger Speicheranstieg, trotz deaktiviertem Cache + \item Gleichmässige Anzahl an Datenbankabfragen + \item Gleichmässige Laufzeit der Datenbankabfragen + \item Laufzeitanteil der Datenbankabfragen unter 10\% + \end{itemize} + } + + \onslide<1->{ + \column{0.5\textwidth} + \begin{table}[h!] + \centering + \resizebox{\textwidth}{!}{ \begin{tabular}{r|r|r|r|r|r|r|r|r} + & \multicolumn{3}{c|}{Aufrufzeit (ms)} & \multicolumn{2}{c|}{Datenbankabfragen} & \multicolumn{3}{c}{Speicherverbrauch (MB)} \\ + \# & min & avg & max & \#-avg & avg (ms) & davor & danach & diff \\ + \hline + \hline + 1 & 360 & 623 & 2079 & 1224.0 & 30.3 & 872.8 & 914.1 & 41.3 \\ % 12240 - 303 ms (135+ 79+ 39+ 22+17+11) (#2-6,8) + 2 & 331 & 372 & 430 & 1208.0 & 31.2 & 914.5 & 1008.0 & 93.5 \\ % 24320 - 615 ms (270+156+ 78+ 56+34+21) (#2-7) + 3 & 291 & 428 & 815 & 1208.0 & 33.5 & 1030.0 & 1297.0 & 267.0 \\ % 36400 - 950 ms (406+256+118+ 79+55+36) (#2-7) + \textbf{4} & 288 & 357 & 433 & 1208.0 & 33.7 & 1299.0 & 1461.0 & 162.0 \\ % 48480 - 1287 ms (564+334+167+105+72+45) (#2-7) + 5 & 294 & 404 & 499 & 1208.0 & 32.9 & 1462.0 & 1638.0 & 176.0 \\ % 60560 - 1616 ms (699+428+210+128+92+59) (#2-7) + \end{tabular} } + \caption{Messung ohne Caches} + \end{table} + } + \end{columns} \end{frame} % Hier 2-3 der aktuellen erarbeiten Ansätze Vorstellen und nach dem Warum fragen % Genau beschreiben was Signifikant besser/schlechter ist +\subsection{OpenJPA-Cache} \begin{frame} \frametitle{Caching mit OpenJPA} - --- OpenJPA --- + \begin{columns} + \onslide<2->{ + \column{0.5\textwidth} + \begin{itemize} + \item Erwartete Reduzierung der Datenbankabfragen + \item Laufzeit in der Datenbank halbiert sich nicht, trotz halbierter Abfragen + \item Speicheranstieg wurde reduziert + \end{itemize} + } + + \onslide<1->{ + \column{0.5\textwidth} + \begin{table}[h!] + \small + \centering + \resizebox{\textwidth}{!}{ \begin{tabular}{r|r|r|r|r|r|r|r|r} + & \multicolumn{3}{c|}{Aufrufzeit (ms)} & \multicolumn{2}{c|}{Datenbankabfragen} & \multicolumn{3}{c}{Speicherverbrauch (MB)} \\ + \# & min & avg & max & \#-avg & avg (ms) & davor & danach & diff \\ + \hline + \hline + ref-4 & 288 & 357 & 433 & 1208.0 & 33.7 & 1299.0 & 1461.0 & 162.0 \\ % 48480 - 1287 ms (564+334+167+105+72+45) (#2-7) + \hline + \hline + 1 & 338 & 567 & 1853 & 741.8 & 28.8 & 874.8 & 923.5 & 48.7 \\ % 7418 - 288 ms (145+ 42+ 40+ 24+18+ 8+ 7+ 4) (#2-8,12) + 2 & 235 & 290 & 460 & 685.2 & 25.8 & 923.5 & 926.4 & 2.9 \\ % 14270 - 546 ms (282+ 81+ 70+ 47+33+14+11+ 8) (#2-9) + 3 & 225 & 254 & 313 & 683.6 & 27.6 & 927.4 & 1018.0 & 90.6 \\ % 21106 - 822 ms (430+120+ 99+ 77+49+20+16+11) (#2-9) + 4 & 235 & 289 & 403 & 683.9 & 27.6 & 1018.0 & 1018.0 & 0.0 \\ % 27945 - 1098 ms (569+160+137+ 99+68+26+22+17) (#2-9) + 5 & 193 & 265 & 359 & 687.9 & 27.6 & 1025.0 & 1140.0 & 115.0 \\ % 34824 - 1374 ms (704+202+171+128+86+34+27+22) (#2-9) + \hline + \hline + 1 & 151 & 368 & 1904 & 142.2 & 20.8 & 878.1 & 919.9 & 41.8 \\ % 1422 - 208 ms (133+ 40+ 23+9+2+1) (#2,4-6,10,12) + 2 & 133 & 143 & 159 & 6.0 & 20.5 & 919.8 & 921.0 & 1.2 \\ % 1482 - 413 ms (274+ 80+ 47+9+2+1) (#2-3,5,6,10,12) + 3 & 120 & 126 & 132 & 6.0 & 19.9 & 922.8 & 924.1 & 1.3 \\ % 1542 - 612 ms (412+119+ 69+9+2+1) (#2,3,5,6,10,12) + 4 & 120 & 124 & 128 & 6.0 & 21.4 & 924.1 & 925.4 & 1.3 \\ % 1602 - 826 ms (550+168+ 96+9+2+1) (#2-4,6,10,12) + 5 & 109 & 114 & 131 & 6.0 & 19.7 & 926.1 & 926.8 & 0.7 \\ % 1662 - 1023 ms (683+209+119+9+2+1) (#2-4,6,10,12) + \end{tabular} } + \caption{Messung mit OpenJPA-Cache und Größe auf 1000 bzw. 10000} + \end{table} + + } + \end{columns} \end{frame} +\subsection{Materialized View} \begin{frame} \frametitle{Abfragen über materialized views} + \begin{columns} + \onslide<2->{ + \column{0.5\textwidth} + \begin{itemize} + \item Deutliche Reduzierung der Datenbankabfragen und \=laufzeiten + \item Unter-Abfragen werden als Json-Objekte direkt hinterlegt + \item Teuer beim erstellen, aber selten notwendig + \item Geringe Schwankung der Aufrufzeiten + \item Anteil der Datenbank nochmals reduziert + \end{itemize} + } + + \onslide<1->{ + \column{0.5\textwidth} + \begin{table} + \centering + \resizebox{\textwidth}{!}{ \begin{tabular}{r|r|r|r|r|r|r|r|r} + & \multicolumn{3}{c|}{Aufrufzeit (ms)} & \multicolumn{2}{c|}{Datenbankabfragen} & \multicolumn{3}{c}{Speicherverbrauch (MB)} \\ + \# & min & avg & max & \#-avg & avg (ms) & davor & danach & diff \\ + \hline + \hline + ref & 288 & 357 & 433 & 1208.0 & 33.7 & 1299.0 & 1461.0 & 162.0 \\ % 48480 - 1287 ms (564+334+167+105+72+45) (#2-7) + \hline + \hline + 1 & 203 & 315 & 808 & 17.8 & 3.0 & 851.4 & 883.9 & 32.5 \\ % 178 - 30 ms (19+11+0) (#2,4,8) + 2 & 154 & 172 & 187 & 9.0 & 2.2 & 883.2 & 887.0 & 3.8 \\ % 268 - 52 ms (33+18+1) (#2,3,8) + 3 & 145 & 151 & 163 & 9.0 & 2.8 & 887.7 & 895.3 & 7.6 \\ % 358 - 80 ms (52+27+1) (#2,3,8) + 4 & 132 & 143 & 152 & 9.0 & 2.8 & 896.0 & 900.0 & 4.0 \\ % 448 - 108 ms (70+37+1) (#2,3,8) + 5 & 121 & 125 & 132 & 9.0 & 2.4 & 900.6 & 901.0 & 0.4 \\ % 538 - 132 ms (85+46+1) (#2,3,8) + \end{tabular} } + \caption{Messung mit Materialized View} + \end{table} + } + \end{columns} \end{frame} -%% -- SLIDE -- REFERENCES +\section{Vergleich} +\begin{frame} + \frametitle{Vergleich} + \begin{columns} + \column{0.3\textwidth} + \centering + \begin{tikzpicture}[scale=.4] + \centering + \begin{axis}[ + title={Laufzeitvergleich Webseitenaufrufe}, + %width=\textwidth,height=\textheight, + xlabel={Aufruf}, + ylabel={Laufzeit [ms]}, + enlargelimits=0.05, + ymin=0, ymax=2100, + xtick={0,1,2,3,4,5}, %Ticks explizit angeben, dass bei grpßerer Darstellung nicht Zwischenticks existieren + ytick={0,500,1000,1500,2000,2500}, + legend pos=north east, + ymajorgrids=true, + grid style=dashed, + ] + \addplot coordinates { (0,2079)(1,623)(2,372)(3,428)(4,357)(5,404) }; + + \addplot coordinates { (0,1853) (1,567)(2,290)(3,254)(4,289)(5,265)}; + + \addplot coordinates { (0,1904) (1,143)(2,126)(3,126)(4,124)(5,114)}; + + \addplot coordinates { (0,808) (1,315)(2,172)(3,151)(4,143)(5,125)}; + + \legend{Ohne Cache,OpenJPA Cache,OpenJPA Cache groß,Materialized View} + \end{axis} + \end{tikzpicture} + + \begin{tikzpicture}[scale=.4] + \centering + \begin{axis}[ + title={Laufzeitvergleich Datenbankabfragen}, + %width=\textwidth,height=\textheight, + xlabel={Aufruf}, + ylabel={Laufzeit [ms]}, + enlargelimits=0.05, + ymin=0, ymax=60, + xtick={1,2,3,4,5}, %Ticks explizit angeben, dass bei grpßerer Darstellung nicht Zwischenticks existieren + legend pos=north east, + ymajorgrids=true, + grid style=dashed, + ] + \addplot coordinates { (1,30.3)(2,31.5)(3,33.5)(4,33.7)(5,32.9) }; + + \addplot coordinates { (1,28.8)(2,25.8)(3,27.6)(4,27.6)(5,27.6) }; + + \addplot coordinates { (1,20.8)(2,20.5)(3,19.9)(4,21.4)(5,19.7) }; + + \addplot coordinates { (1,3.0)(2,2.2)(3,2.8)(4,2.8)(5,2.4) }; + + \legend{Ohne Cache,OpenJPA Cache,OpenJPA Cache groß,Materialized View} + \end{axis} + \end{tikzpicture} + + \pause + \column{0.7\textwidth} + \begin{itemize} + \item Keine Start-Phase auf der Datenbank zu erkennen + \item Die Datenbankabfragen nehmen den kleinsten Teil der Laufzeit ein + \item Materialized View geringste Datenbankabfragezeiten, aber nicht schneller als großen OpenJPA-Cache + \end{itemize} + \pause + \begin{block}{Zusammenfassung} + Dies zeigt, die größten Optimierspotenziale sind in der Anwendung versteckt + \end{block} + \end{columns} +\end{frame} + +% -- SLIDE -- REFERENCES % hier alle Keys aus der BIB einfügen, die mit dargestellt werden sollen \nocite{IbmOpenJPACaching2023,PostgresPro:Chap20.4:2023} % Für mehreren Seite bei den Referenzen ein ",allowframebreaks" in den [] hinzufügen diff --git a/thesis.pdf b/thesis.pdf index 0c0932d..27e9c95 100644 Binary files a/thesis.pdf and b/thesis.pdf differ diff --git a/thesis.tex b/thesis.tex index d488fbc..5edb054 100644 --- a/thesis.tex +++ b/thesis.tex @@ -14,7 +14,7 @@ \input{marco-galster-config} \input{classicthesis-config} \renewcommand{\myThesisType}{Bachelorarbeit\xspace} -\renewcommand{\myTime}{22. Juli 2024\xspace} +%\renewcommand{\myTime}{22. Juli 2024\xspace} \renewcommand{\myVersion}{version 1.0\xspace} % https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings