Changes between Version 57 and Version 58 of QueryOptimization


Ignore:
Timestamp:
05/08/26 19:37:09 (3 weeks ago)
Author:
231105
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v57 v58  
    3939[[Image("query plan za view_performace.png", 800px)]]
    4040
    41 
    4241=== 3. View3 view_route_infrastructure_stats ===
    4342
     
    5857-**Оптимизација**: Овој поглед е оптимизиран како Materialized View поради двојното поврзување (JOIN) и потребата од сумирање на приходите низ огромна база на податоци. Наместо при секој деловен извештај базата да ги пребројува сите билети поединечно, податоците се пресметуваат однапред, овозможувајќи инстантна анализа на најпрофитабилните рути.
    5958
     59[[Image(Screenshot 2026-05-08 192930.png, 800px)]]\
     60
     61Времето потребно за извршување на овој прашалник е **~20ms**.
     62
    6063**-Explain plan:**
    6164
    6265[[Image(Screenshot 2026-05-08 192247.png, 800px)]]
    6366
     67Поради тоа што се прави full scan на повеќе табели, затоа правиме индекси на view-то:
     68
     69[[Image(Screenshot 2026-05-08 192247.png, 800px)]]
     70
     71
     72=== 5. View5 route_trip_stats ===
     73
     74-**Опис**: Погледот route_trip_stats обезбедува статистички преглед на фреквенцијата и точноста на железничките рути. Преку него се следи вкупниот број на реализирани патувања по рута и просечното време на доцнење, што помага во идентификување на линиите кои се најкритични во однос на возниот ред.
     75
     76[[Image(route_trip_stats.png, 800px)]]
     77
     78Времето потребно за извршување на овој прашалник е **~300ms.** Времето на извршување е прифатливо и тоа може да го видиме со query планот.
     79
     80**-Query plan:**
     81
     82[[Image("query plan za route_trip_stats.png", 800px)]]
     83
     84=== 6. View6 view_train_utilization ===
     85
     86-**Опис**: Погледот view_train_utilization е наменет за анализа на искористеноста и доверливоста на секој поединечен воз. Тој прикажува колку пати секој воз бил во сообраќај и какво е неговото просечно доцнење, што помага при планирање на сервисирање и замена на возилата.
     87
     88[[Image(Screenshot 2026-05-08 161126.png, 800px)]]
     89
     90Времето потребно за извршување на овој прашалник е **~140ms.** Времето на извршување е прифатливо и тоа може да го видиме со query планот.
     91
     92**-Query plan:**
     93
     94[[Image(Screenshot 2026-05-08 164049.png, 800px)]]
     95
     96=== 7. View7 active_delays ===
     97
     98-**Опис**: Погледот active_delays е оперативен поглед кој овозможува следење на сите возови кои моментално се во сообраќај и се соочуваат со доцнење. Овој поглед ги филтрира само активните патувања (кои не се завршени), давајќи прецизни информации за локацијата на возот и времетраењето на неговото доцнење.
     99
     100[[Image(active_delays.png, 800px)]]
     101
     102Времето потребно за извршување на овој прашалник е **~40ms.** Времето на извршување е прифатливо и тоа може да го видиме со query планот.
     103
     104**-Query plan:**
     105
     106[[Image("query plan za active_delays.png", 800px)]]
     107
     108=== 8. View8 train_maintenance_stats ===
     109
     110-**Опис**: Погледот train_maintenance_stats служи за следење на историјата на сервисирање на возовите. Тој дава детален преглед на вкупниот број извршени поправки по воз и бројот на различни техничари кои биле вклучени во процесот на одржување.
     111
     112[[Image(train_maintenance_stats.png, 800px)]]
     113
     114Времето потребно за извршување на овој прашалник е **~1.8s**. Времето на извршување не е прифатливо.
     115
     116**-Explain plan:**
     117
     118[[Image(train_maint_stats_Plan.png, 800px)]]
     119
     120Со користење на алатката за приказ на планот за извршување, забележуваме дека главната причина за доцнењето е Full Table Scan врз табелата Employee_, па затоа правиме индекс:
     121
     122[[Image(indeks.png, 800px)]]
     123
     124По креирањето на индексот времето на извршување на прашалникот се намалува од **~1.8s**, на **~50ms** и ова време на извршување на прашалникот е прифатливо.
     125
     126[[Image(po_idens_za_maintence.png, 800px)]]
     127
     128**-Query plan:**
     129
     130[[Image("query plan za train_maintenance_stats.png", 800px)]]
     131
     132=== 9. View9 station_traffic_and_revenue ===
     133
     134-**Опис**: Погледот station_traffic_and_revenue врши сеопфатна анализа на активноста на железничките станици. Тој ги прикажува клучните индикатори за успех за секоја станица: вкупниот број на заминати патници, генерираниот приход од продадени билети и бројот на различни возови кои поминале низ станицата.
     135
     136[[Image(Screenshot 2026-05-08 154650.png, 800px)]]
     137
     138Времето потребно за извршување на овој прашалник е **~2s.** Времето на извршување не е прифатливо.
     139
     140-**Оптимизација**: Овој поглед е дефиниран како **Materialized View** бидејќи агрегира податоци преку сложени поврзувања на табелите за станици, билети и патувања. Со оглед на тоа што користи SUM и COUNT(DISTINCT), пресметките бараат значителна моќност. Со материјализацијата, менаџментот може веднаш да ги идентификува најпрометните и најпрофитабилните станици без да го забавува тековниот систем за продажба на билети. Иако времето на извршување е прифатливо, бидејќи самиот view е аналитички ние ја направувме оваа оптимизација.
     141
     142[[Image(Screenshot 2026-05-08 155445.png, 800px)]]
     143
     144Времето потребно за извршување на овој прашалник по оптимизацијата е **~20ms.**
     145
     146**-Explain plan:**
     147
     148[[Image(Screenshot 2026-05-08 163246.png, 800px)]]
     149
    64150Поради тоа што се прави full scan на целиот view, затоа правиме индекс на view-то:
    65151
    66 === 5. View5 route_trip_stats ===
    67 
    68 -**Опис**: Погледот route_trip_stats обезбедува статистички преглед на фреквенцијата и точноста на железничките рути. Преку него се следи вкупниот број на реализирани патувања по рута и просечното време на доцнење, што помага во идентификување на линиите кои се најкритични во однос на возниот ред.
    69 
    70 [[Image(route_trip_stats.png, 800px)]]
    71 
    72 Времето потребно за извршување на овој прашалник е **~300ms.** Времето на извршување е прифатливо и тоа може да го видиме со query планот.
    73 
    74 **-Query plan:**
    75 
    76 [[Image("query plan za route_trip_stats.png", 800px)]]
    77 
    78 === 6. View6 view_train_utilization ===
    79 
    80 -**Опис**: Погледот view_train_utilization е наменет за анализа на искористеноста и доверливоста на секој поединечен воз. Тој прикажува колку пати секој воз бил во сообраќај и какво е неговото просечно доцнење, што помага при планирање на сервисирање и замена на возилата.
    81 
    82 [[Image(Screenshot 2026-05-08 161126.png, 800px)]]
    83 
    84 Времето потребно за извршување на овој прашалник е **~140ms.** Времето на извршување е прифатливо и тоа може да го видиме со query планот.
    85 
    86 **-Query plan:**
    87 
    88 [[Image(Screenshot 2026-05-08 164049.png, 800px)]]
    89 
    90 === 7. View7 active_delays ===
    91 
    92 -**Опис**: Погледот active_delays е оперативен поглед кој овозможува следење на сите возови кои моментално се во сообраќај и се соочуваат со доцнење. Овој поглед ги филтрира само активните патувања (кои не се завршени), давајќи прецизни информации за локацијата на возот и времетраењето на неговото доцнење.
    93 
    94 [[Image(active_delays.png, 800px)]]
    95 
    96 Времето потребно за извршување на овој прашалник е **~40ms.** Времето на извршување е прифатливо и тоа може да го видиме со query планот.
    97 
    98 **-Query plan:**
    99 
    100 [[Image("query plan za active_delays.png", 800px)]]
    101 
    102 === 8. View8 train_maintenance_stats ===
    103 
    104 -**Опис**: Погледот train_maintenance_stats служи за следење на историјата на сервисирање на возовите. Тој дава детален преглед на вкупниот број извршени поправки по воз и бројот на различни техничари кои биле вклучени во процесот на одржување.
    105 
    106 [[Image(train_maintenance_stats.png, 800px)]]
    107 
    108 Времето потребно за извршување на овој прашалник е **~1.8s**. Времето на извршување не е прифатливо.
    109 
    110 **-Explain plan:**
    111 
    112 [[Image(train_maint_stats_Plan.png, 800px)]]
    113 
    114 Со користење на алатката за приказ на планот за извршување, забележуваме дека главната причина за доцнењето е Full Table Scan врз табелата Employee_, па затоа правиме индекс:
    115 
    116 [[Image(indeks.png, 800px)]]
    117 
    118 По креирањето на индексот времето на извршување на прашалникот се намалува од **~1.8s**, на **~50ms** и ова време на извршување на прашалникот е прифатливо.
    119 
    120 [[Image(po_idens_za_maintence.png, 800px)]]
    121 
    122 **-Query plan:**
    123 
    124 [[Image("query plan za train_maintenance_stats.png", 800px)]]
    125 
    126 === 9. View9 station_traffic_and_revenue ===
    127 
    128 -**Опис**: Погледот station_traffic_and_revenue врши сеопфатна анализа на активноста на железничките станици. Тој ги прикажува клучните индикатори за успех за секоја станица: вкупниот број на заминати патници, генерираниот приход од продадени билети и бројот на различни возови кои поминале низ станицата.
    129 
    130 [[Image(Screenshot 2026-05-08 154650.png, 800px)]]
    131 
    132 Времето потребно за извршување на овој прашалник е **~2s.** Времето на извршување не е прифатливо.
    133 
    134 -**Оптимизација**: Овој поглед е дефиниран како **Materialized View** бидејќи агрегира податоци преку сложени поврзувања на табелите за станици, билети и патувања. Со оглед на тоа што користи SUM и COUNT(DISTINCT), пресметките бараат значителна моќност. Со материјализацијата, менаџментот може веднаш да ги идентификува најпрометните и најпрофитабилните станици без да го забавува тековниот систем за продажба на билети. Иако времето на извршување е прифатливо, бидејќи самиот view е аналитички ние ја направувме оваа оптимизација.
    135 
    136 [[Image(Screenshot 2026-05-08 155445.png, 800px)]]
    137 
    138 Времето потребно за извршување на овој прашалник по оптимизацијата е **~20ms.**
    139 
    140 **-Explain plan:**
    141 
    142 [[Image(Screenshot 2026-05-08 163246.png, 800px)]]
    143 
    144 Поради тоа што се прави full scan на целиот view, затоа правиме индекс на view-то:
    145 
    146152[[Image(Screenshot 2026-05-08 163632.png, 800px)]]
    147153