| Version 2 (modified by , 13 days ago) ( diff ) |
|---|
Оптимизација на прашалници и погледи
Членови на тим:
- Aлександар Тодороски 231153
- Антонио Трајковски 231156
- Вељко Аџиќ 231267
Поглед 1: season_standing
Овој поглед ни дава за секој тим број на натпревари, вкупно поени, и вкупно поени на противникот во секоја сезона и секој натпревар. Примарен случај кога ќе се користи погледот е при излистување на податоци за томовите во одредена сезона.
Иницијално време за извршување трае повеќе од 5 минути (беше прекинато извршувањето), што е неприфатливо за апликацијата.
Најбавните операции се Full Scan, сортирање и агрегација:
Со индексирање сортирање може да се подобри, но во овој поглед подредуваме според агрегација SUM, што нема да помогне. Индексирање на табелата duel ќе помогне бидејќи на неа се прави Full Scan.
Со додавање на индекс се намалува времето на извршување на 4s 18ms.
Поглед 2: monthly_income_for_club
Овој поглед за секој спортски клуб дава приход, трошоци, профит, активни спонзори и активни договори со играчи во последните 30 дена. Примарната наменa за погледот е да овозможува транспарентен преглед на финасиските податоци за одреден клуб.
Извршување на квери со погледот трае 11s 397ms.
Во споредба од претходното, ова е доста побрзо без оптимизација, но пак може да се забрза. Според квери планот можеме да ги видиме 3-те табели каде се извршува Full Scan.
Со овие индексирање на тие 3 табели можеме да добиеме време на извршување 20ms.
Со овие индексирање на тие 3 табели можеме да добиеме време на извршување 20ms.
Поглед 3: upcoming_duels
Погледот upcoming_duels содржи информации за идно закажани дуели, датумот и времето на дуелот, имиња на тимовите, спортот, име, капацитет и држава на локацијата каде се изигрува, и името на натпревар (доколку има).
Иницијално времен на извршување е 31s 773ms. Ова време е иницијално подобрено од индексирање од поглед 1.
Сепак овој поглед главно филтрира дуели според start_time, кој не е опфатен од претходниот индекс. Затоа во планот пак се извршува Full Scan на табелата.
[Image(analysis_V3.png)]]
Креирање на нов индекс каде прво се индексира start_time, ќе ги подобри перформансите.
Со индексирање кверито се извршува за 10s 696ms.
Поглед 4: free_locations
Погледот има главна примена да даде податоци за локации кои се слободни во одредена држава, во одреден временски период. Опционално може да се филтрира и по капацитет.
Иницијалното време на извршување на кверито е 6s 263ms.
Од анализата може да видиме дека се извршува Full Scan на табелите duel и location.
Со индексирање можеме да го намалиме времето на извршување на 5s 433ms. Минимални добивки добиваме од индексирање, затоа овие индекси не се користат.
Поглед 5: top_scorers_on_competition
[Image(indexes_V5.png)] Овој поглед ни ги враќа сите играчи во даден натпревар рангирани според бројот на даден натпревар.
Иницијално извршување на квери со погледот трае повеќе од 8 минути, каде беше привремено прекинато. Ова е неприфатливо за апликацијата.
Од анализа на квери можеме да видиме дека имаме за 2 табели каде се извршува Full Scan. Овде може да се подобри со индексирање.
Ги дефинираме овие индекси со цел да се забрза извршување на кверито:
Со индексирање време на извршување на квери падна на 104ms.
Поглед 6: referee_work
Погледот referee_work враќа податоци за судии: ЕМБГ, име и презиме, држава на потекло, спортска категорија, вкупен број дуели на кој судел, датумот на првиот дуел кој судел и бројот на идни дуели кои треба да суди.
Иницијално време на извршување е 1s 29ms, што е добро за апликацијата.
Ако извршиме анализа на кверито можеме да видиме дека скоро секаде имаме пребарување преку индекс. Единствена табела каде има Full Scan е country, но бидејќи имаме мал број редици индексирање ќе има мала промена на перформанси.
Поглед 7: team_stats
...
Attachments (37)
- init_V1.png (12.0 KB ) - added by 13 days ago.
- analysis_V1.png (74.9 KB ) - added by 13 days ago.
- indexes_V1.png (8.7 KB ) - added by 13 days ago.
- result_V1.png (11.8 KB ) - added by 13 days ago.
- analysis_V2.png (60.2 KB ) - added by 13 days ago.
- indexes_V2.png (22.5 KB ) - added by 13 days ago.
- init_V2.png (12.5 KB ) - added by 13 days ago.
- result_V2.png (11.7 KB ) - added by 13 days ago.
- analysis_V3.png (83.0 KB ) - added by 13 days ago.
- indexes_V3.png (14.4 KB ) - added by 13 days ago.
- result_V3.png (23.1 KB ) - added by 13 days ago.
- init_V3.png (23.1 KB ) - added by 13 days ago.
- analysis_V4.png (51.6 KB ) - added by 13 days ago.
- indexes_V4.png (16.3 KB ) - added by 13 days ago.
- init_V4.png (48.2 KB ) - added by 13 days ago.
- result_V4.png (48.2 KB ) - added by 13 days ago.
- analysis_V5.png (88.8 KB ) - added by 13 days ago.
- indexes_V5.png (13.0 KB ) - added by 13 days ago.
- init_V5.png (10.1 KB ) - added by 13 days ago.
- result_V5.png (11.6 KB ) - added by 13 days ago.
- analysis_V6.png (74.6 KB ) - added by 13 days ago.
- init_V6.png (12.3 KB ) - added by 13 days ago.
- analysis_V7.png (134.3 KB ) - added by 13 days ago.
- indexes_V7.png (8.1 KB ) - added by 13 days ago.
- init_V7.png (11.9 KB ) - added by 13 days ago.
- result_V7.png (11.9 KB ) - added by 13 days ago.
- analysis_V8.png (115.6 KB ) - added by 13 days ago.
- indexes_V8.png (15.5 KB ) - added by 13 days ago.
- init_V8.png (9.2 KB ) - added by 13 days ago.
- result_V8.png (10.9 KB ) - added by 13 days ago.
- analysis_V9.png (74.9 KB ) - added by 13 days ago.
- init_V9.png (11.8 KB ) - added by 13 days ago.
- analysis_V10.png (103.7 KB ) - added by 13 days ago.
- indexes_V10.png (11.7 KB ) - added by 13 days ago.
- init_V10.png (15.8 KB ) - added by 13 days ago.
- result_V10.png (13.9 KB ) - added by 13 days ago.
- IRSON_phase_4.pdf (1.1 MB ) - added by 13 days ago.





















