Changes between Version 2 and Version 3 of QueryOptimization


Ignore:
Timestamp:
05/15/26 00:09:38 (11 days ago)
Author:
231267
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v2 v3  
    118118== Поглед 7: team_stats
    119119
    120 ...
     120Овој поглед содржи податоци за секој тим: име на тимот, спортска категорија, држава на потекло, тренери на тимот, бројот на активни договори, бројот на закажани дуели во кои учествуваат и датум на следниот дуел во кој учествуваат.
    121121
     122Иницијално време на извршување на кверито е 12s 132ms.
    122123
     124[[Image(init_V7.png)]]
     125
     126Од анализата може да видиме дека претходните индекси се искористуваат и доведува до побрзо извршување.
     127
     128[[Image(analysis_V7.png)]]
     129
     130Сепак ако додадеме индекс на `coaching_team` можеме да постигнеме време на извршување од 1s 339ms.
     131
     132[[Image(indexes_V7.png)]]
     133
     134[[Image(result_V7.png)]]
     135
     136== Поглед 8: duel_history
     137
     138Овој поглед ни дава податоци за секој дуел: кога почнал, на која локација се изигрува, имиња на тимовите, освоени поени од тимовите, резултатот, црвени картони за тимовите, кои играчи играат во секој тим, и кои судии го судат дуелот.
     139
     140Иницијално квери трае повеќе од 8 минути, каде беше привремено прекинато. За ова квери ни треба оптимизирање.
     141
     142[[Image(init_V8.png)]]
     143
     144Од анализата можеме да видиме дека голем дел операции користат индекси, но на 4 места се извршува Full Scan на големи табели, што доведува до долгото време на извршување.
     145
     146[[Image(analysis_V8.png)]]
     147
     148Креирани се овие два индекси за табелите на кои им се извршува Full Scan.
     149
     150[[Image(indexes_V8.png)]]
     151
     152Со овие индекси добивме време на извршување 1s 113ms.
     153
     154[[Image(result_V8.png)]]
     155
     156== Поглед 9: get_red_cards
     157
     158Помошен поглед кој ги враќа сите играчи што добиле црвен картон за секој дуел. Враќа податоци за дуелот (id, имиња на тимовите, спортска категорија и натпреварот) и информации за играчот (име, за кој тим игра, кога почнал, кога излегол од играта и колку минути пропуштил).
     159
     160Иницијалното време на извршување квери е 20ms.
     161
     162[[Image(init_V9.png)]]
     163
     164Од анализата можеме да видиме дека во скоро сите операции се користи индекс. Единствената табела каде што се има Full Scan е `sport_category`, но бидејќи табелата има малку редици индексирање нема да доведе до поголемо подобрување.
     165
     166[[Image(analysis_V9.png)]]
     167
     168== Поглед 10: player_career_history
     169
     170Овој поглед враќа податоци за сите договори кој склучил спортист. Го враќа ЕМБГ на спортистот, името, датум на раѓање, национална припадност, спортска категорија, име на клубот со кој склучува договр, државата на клубот, почеток и крај на договорот, и статус на договорот.
     171
     172Иницијалната имплементација извршува за 881ms.
     173
     174[[Image(init_V10.png)]]
     175
     176Од анализата може да видиме дека има 2 табели што се извршуваат со Full Scan: `country` и `sportsperson_contract`. Табелата за држави е мала, зато кај неа индексирање нема да врати многу подобрувања во перформанси, но табелата за договори и треба.
     177
     178[[Image(analysis_V10.png)]]
     179
     180По креирање на индексот гледаме дека има минимално забрзување на брзината, односно ни се намали на 18ms. Затоа овој индекс нема да се користи.
     181
     182[[Image(indexes_V10.png)]]
     183
     184[[Image(result_V10.png)]]