Changes between Initial Version and Version 1 of QueryOptimization


Ignore:
Timestamp:
05/14/26 12:10:00 (13 days ago)
Author:
231267
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v1 v1  
     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...