| | 1 | = Оптимизација на прашалници и погледи |
| | 2 | |
| | 3 | '''Членови на тим:''' |
| | 4 | - Aлександар Тодороски 231153 |
| | 5 | - Антонио Трајковски 231156 |
| | 6 | - Вељко Аџиќ 231267 |
| | 7 | |
| | 8 | == Поглед 1: season_standing |
| | 9 | Овој поглед ни дава за секој тим број на натпревари, вкупно поени, и вкупно поени на противникот во секоја сезона и секој натпревар. Примарен случај кога ќе се користи погледот е при излистување на податоци за томовите во одредена сезона. |
| | 10 | |
| | 11 | Иницијално време за извршување трае повеќе од 5 минути (беше прекинато извршувањето), што е неприфатливо за апликацијата. |
| | 12 | |
| | 13 | [[Image(init_V1.png)]] |
| | 14 | |
| | 15 | Најбавните операции се Full Scan, сортирање и агрегација: |
| | 16 | |
| | 17 | [[Image(analysis_V1.png)]] |
| | 18 | |
| | 19 | Со индексирање сортирање може да се подобри, но во овој поглед подредуваме според агрегација SUM, што нема да помогне. Индексирање на табелата duel ќе помогне бидејќи на неа се прави Full Scan. |
| | 20 | |
| | 21 | [[Image(indexes_V1.png)]] |
| | 22 | |
| | 23 | Со додавање на индекс се намалува времето на извршување на 4s 18ms. |
| | 24 | |
| | 25 | [[Image(result_V1.png)]] |
| | 26 | |
| | 27 | == Поглед 2: monthly_income_for_club |
| | 28 | |
| | 29 | Овој поглед за секој спортски клуб дава приход, трошоци, профит, активни спонзори и активни договори со играчи во последните 30 дена. Примарната наменa за погледот е да овозможува транспарентен преглед на финасиските податоци за одреден клуб. |
| | 30 | |
| | 31 | Извршување на квери со погледот трае 11s 397ms. |
| | 32 | |
| | 33 | [[Image(init_V2.png)]] |
| | 34 | |
| | 35 | Во споредба од претходното, ова е доста побрзо без оптимизација, но пак може да се забрза. Според квери планот можеме да ги видиме 3-те табели каде се извршува Full Scan. |
| | 36 | |
| | 37 | [[Image(analysis_V2.png)]] |
| | 38 | |
| | 39 | [[Image(indexes_V2.png)]] |
| | 40 | |
| | 41 | Со овие индексирање на тие 3 табели можеме да добиеме време на извршување 20ms. |
| | 42 | |
| | 43 | Со овие индексирање на тие 3 табели можеме да добиеме време на извршување 20ms. |
| | 44 | |
| | 45 | [[Image(result_V2.png)]] |
| | 46 | |
| | 47 | == Поглед 3: upcoming_duels |
| | 48 | |
| | 49 | Погледот `upcoming_duels` содржи информации за идно закажани дуели, датумот и времето на дуелот, имиња на тимовите, спортот, име, капацитет и држава на локацијата каде се изигрува, и името на натпревар (доколку има). |
| | 50 | |
| | 51 | Иницијално времен на извршување е 31s 773ms. Ова време е иницијално подобрено од индексирање од поглед 1. |
| | 52 | |
| | 53 | [[Image(init_V3.png)]] |
| | 54 | |
| | 55 | Сепак овој поглед главно филтрира дуели според `start_time`, кој не е опфатен од претходниот индекс. Затоа во планот пак се извршува Full Scan на табелата. |
| | 56 | |
| | 57 | [Image(analysis_V3.png)]] |
| | 58 | |
| | 59 | Креирање на нов индекс каде прво се индексира `start_time`, ќе ги подобри перформансите. |
| | 60 | |
| | 61 | [[Image(indexes_V3.png)]] |
| | 62 | |
| | 63 | Со индексирање кверито се извршува за 10s 696ms. |
| | 64 | |
| | 65 | [[Image(result_V3.png)]] |
| | 66 | |
| | 67 | == Поглед 4: free_locations |
| | 68 | |
| | 69 | ... |