Changes between Version 72 and Version 73 of QueryOptimization


Ignore:
Timestamp:
06/10/26 11:02:47 (7 days ago)
Author:
231109
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v72 v73  
    33 [attachment:views.sql]
    44
    5 === 1. View1 view_payment_audit ===
     5=== 1. View1 view_conductor_list ===
     6
     7-**Опис**: Погледот view_conductor_list е детален преглед наменет за кондуктерите и железничкиот персонал. Погледот ги здружува податоците за билетите, патниците, возовите и станиците, овозможувајќи брз увид во тоа кој патник на кое седиште се наоѓа, во кој вагон е и на кои релации патува.
     8
     9[[Image(predIndeks.png, 800px)]]
     10
     11Времето потребно за извршување на овој прашалник е **~2s 400ms.** Не е прифатливо.
     12
     13**-Explain plan:**
     14
     15[[Image(explain_plan.png, 800px)]]
     16
     17Со користење на алатката за приказ на планот за извршување, забележуваме дека главната причина за доцнењето е Full Table Scan врз табелата Ticket, па затоа правиме индекс:
     18
     19[[Image("Screenshot 2026-05-08 165050.png", 800px)]]
     20
     21[[Image(poIndeks.png, 800px)]]
     22
     23Сега времето на извршување е **~26ms** и е прифатливо.
     24
     25**-Query plan:**
     26
     27[[Image(QueryPlan.png, 800px)]]
     28
     29=== 2. View2 view_user_ticket_history ===
     30
     31-**Опис**: Погледот view_user_ticket_history е наменет за кориснички профили и историја на патувања. Тој ги сумира сите билети на еден патник, класифицирајќи ги како „претстојни“ или „минати“ патувања, притоа прикажувајќи детали за рутата, времето на поаѓање и статусот на билетот.
     32
     33[[Image(USERPREDIND.png, 800px)]]
     34
     35Времето потребно за извршување на овој прашалник е **~3s 998ms.** Не е прифатливо.
     36
     37**-Explain plan:**
     38
     39[[Image(EXPLAINUSER.png, 800px)]]
     40
     41Со користење на алатката за приказ на планот за извршување, забележуваме дека главната причина за доцнењето е Full Table Scan врз табелата Ticket и врз табелата Payment, па затоа правиме два индекса:
     42
     43[[Image(userIND.png, 800px)]]
     44
     45[[Image(USERpoind.png, 800px)]]
     46
     47Сега времето на извршување е **~139ms** и е прифатливо.
     48
     49**-Query plan:**
     50
     51[[Image(userQuery.png, 800px)]]
     52
     53=== 3. View3 view_station_departures ===
     54
     55-**Опис**: Погледот view_station_departures функционира како дигитален информативен табла за станиците. Тој ги прикажува сите претстојни поаѓања, вклучувајќи ги името на рутата, статусот на патувањето и информациите за евентуални доцнења, подредени хронолошки.
     56
     57[[Image(departure.png, 800px)]]
     58
     59Времето потребно за извршување на овој прашалник е **~140ms.** Времето на извршување е прифатливо, заклучуваме дека не треба да го оптимизираме и тоа може да го видиме со query планот.
     60
     61**-Query plan:**
     62
     63[[Image(depQuery.png, 800px)]]
     64
     65=== 4. View4 view_station_arrivals ===
     66
     67-**Опис**: Погледот view_station_arrivals служи како дигитален информатор за пристигнувања на железничките станици. Тој ги прикажува сите возови чие пристигнување се очекува во текот на денешниот ден или во иднина, вклучувајќи детали за рутата, планираното време на пристигнување и евентуални доцнења.
     68
     69[[Image(station.png, 800px)]]
     70
     71Времето потребно за извршување на овој прашалник е **~17ms.** Времето на извршување е прифатливо, заклучуваме дека не треба да го оптимизираме и тоа може да го видиме со query планот.
     72
     73**-Query plan:**
     74
     75[[Image(stationQuery.png, 800px)]]
     76
     77=== 5. View5 vw_free_seats_per_trip===
     78
     79-**Опис**: Погледот vw_free_seats_per_trip овозможува реално следење на слободните капацитети за секое патување преку автоматска пресметка на разликата помеѓу вкупниот капацитет на возот и бројот на продадени билети.
     80
     81[[Image(freeseats.png, 800px)]]
     82
     83Времето потребно за извршување на овој прашалник е **~63ms.** Времето на извршување е прифатливо, заклучуваме дека не треба да го оптимизираме и тоа може да го видиме со query планот.
     84
     85**-Query plan:**
     86
     87[[Image(freeseatsView.png, 800px)]]
     88
     89=== 6. View6 active_delays ===
     90
     91-**Опис**: Погледот active_delays е оперативен поглед кој овозможува следење на сите возови кои моментално се во сообраќај и се соочуваат со доцнење. Овој поглед ги филтрира само активните патувања (кои не се завршени), давајќи прецизни информации за локацијата на возот и времетраењето на неговото доцнење.
     92
     93[[Image(active_delays.png, 800px)]]
     94
     95Времето потребно за извршување на овој прашалник е **~40ms.** Времето на извршување е прифатливо и тоа може да го видиме со query планот.
     96
     97**-Query plan:**
     98
     99[[Image("query plan za active_delays.png", 800px)]]
     100
     101=== 7. View7 view_payment_audit ===
    6102
    7103-**Опис**: Погледот view_payment_audit овозможува брза финансиска ревизија преку споредба на вкупните уплати со реалната вредност на издадените билети, со цел да се детектираат преплатени или недоволно платени износи.
     
    21117[[Image("Screenshot 2026-05-13 161503.png", 800px)]]
    22118
    23 === 2. View2 view_trip_performance ===
     119=== 8. View8 view_trip_performance ===
    24120
    25121-**Опис**: Погледот view_trip_performance служи за следење на ефикасноста на возовите преку анализа на доцнењата. Ги обединува податоците за рутите, возовите и возачите, категоризирајќи го секое патување како точно, со мало или со значително доцнење.
     
    33129[[Image("query plan za view_performace.png", 800px)]]
    34130
    35 === 3. View3 view_route_infrastructure_stats ===
     131=== 9. View9 view_route_infrastructure_stats ===
    36132
    37133-**Опис**: Погледот view_route_infrastructure_stats дава преглед на техничките карактеристики на железничките рути. Ги пресметува вкупната должина на секоја рута, бројот на сегменти и ги идентификува критичните точки преку најмалата дозволена брзина долж целата линија.
     
    41137Бидејќи станува збор за аналитичко query кое вклучува пресметки, дополнителна оптимизација не е неопходна. Воедно, времето на извршување е прифатливо и за конкретното query изнесува околу **~17 ms.**
    42138
    43 === 4. View4 view_route_passenger_summary ===
     139=== 10. View10 view_route_passenger_summary ===
    44140
    45141-**Опис**: Погледот view_route_passenger_summary нуди јасен преглед на комерцијалната успешност на секоја железничка рута. Преку него се следи вкупниот број на продадени билети и вкупниот приход генериран од сите патувања поврзани со одредена рута.
     
    59155[[Image("Screenshot 2026-05-13 161721.png", 800px)]]
    60156
    61 === 5. View5 route_trip_stats ===
     157=== 11. View11 route_trip_stats ===
    62158
    63159-**Опис**: Погледот route_trip_stats обезбедува статистички преглед на фреквенцијата и точноста на железничките рути. Преку него се следи вкупниот број на реализирани патувања по рута и просечното време на доцнење, што помага во идентификување на линиите кои се најкритични во однос на возниот ред.
     
    71167[[Image("query plan za route_trip_stats.png", 800px)]]
    72168
    73 === 6. View6 view_train_utilization ===
     169=== 12. View12 view_train_utilization ===
    74170
    75171-**Опис**: Погледот view_train_utilization е наменет за анализа на искористеноста и доверливоста на секој поединечен воз. Тој прикажува колку пати секој воз бил во сообраќај и какво е неговото просечно доцнење, што помага при планирање на сервисирање и замена на возилата.
     
    83179[[Image(Screenshot 2026-05-08 164049.png, 800px)]]
    84180
    85 === 7. View7 active_delays ===
    86 
    87 -**Опис**: Погледот active_delays е оперативен поглед кој овозможува следење на сите возови кои моментално се во сообраќај и се соочуваат со доцнење. Овој поглед ги филтрира само активните патувања (кои не се завршени), давајќи прецизни информации за локацијата на возот и времетраењето на неговото доцнење.
    88 
    89 [[Image(active_delays.png, 800px)]]
    90 
    91 Времето потребно за извршување на овој прашалник е **~40ms.** Времето на извршување е прифатливо и тоа може да го видиме со query планот.
    92 
    93 **-Query plan:**
    94 
    95 [[Image("query plan za active_delays.png", 800px)]]
    96 
    97 === 8. View8 train_maintenance_stats ===
     181=== 13. View13 train_maintenance_stats ===
    98182
    99183-**Опис**: Погледот train_maintenance_stats служи за следење на историјата на сервисирање на возовите. Тој дава детален преглед на вкупниот број извршени поправки по воз и бројот на различни техничари кои биле вклучени во процесот на одржување.
     
    119203[[Image("query plan za train_maintenance_stats.png", 800px)]]
    120204
    121 === 9. View9 station_traffic_and_revenue ===
     205=== 14. View14 station_traffic_and_revenue ===
    122206
    123207-**Опис**: Погледот station_traffic_and_revenue врши сеопфатна анализа на активноста на железничките станици. Тој ги прикажува клучните индикатори за успех за секоја станица: вкупниот број на заминати патници, генерираниот приход од продадени билети и бројот на различни возови кои поминале низ станицата.
     
    136220
    137221[[Image(Screenshot 2026-05-13 161129.png, 800px)]]
    138 
    139 === 10. View10 view_conductor_list ===
    140 
    141 -**Опис**: Погледот view_conductor_list е детален преглед наменет за кондуктерите и железничкиот персонал. Погледот ги здружува податоците за билетите, патниците, возовите и станиците, овозможувајќи брз увид во тоа кој патник на кое седиште се наоѓа, во кој вагон е и на кои релации патува.
    142 
    143 [[Image(predIndeks.png, 800px)]]
    144 
    145 Времето потребно за извршување на овој прашалник е **~2s 400ms.** Не е прифатливо.
    146 
    147 **-Explain plan:**
    148 
    149 [[Image(explain_plan.png, 800px)]]
    150 
    151 Со користење на алатката за приказ на планот за извршување, забележуваме дека главната причина за доцнењето е Full Table Scan врз табелата Ticket, па затоа правиме индекс:
    152 
    153 [[Image("Screenshot 2026-05-08 165050.png", 800px)]]
    154 
    155 [[Image(poIndeks.png, 800px)]]
    156 
    157 Сега времето на извршување е **~26ms** и е прифатливо.
    158 
    159 **-Query plan:**
    160 
    161 [[Image(QueryPlan.png, 800px)]]
    162 
    163 === 11. View11 view_user_ticket_history ===
    164 
    165 -**Опис**: Погледот view_user_ticket_history е наменет за кориснички профили и историја на патувања. Тој ги сумира сите билети на еден патник, класифицирајќи ги како „претстојни“ или „минати“ патувања, притоа прикажувајќи детали за рутата, времето на поаѓање и статусот на билетот.
    166 
    167 [[Image(USERPREDIND.png, 800px)]]
    168 
    169 Времето потребно за извршување на овој прашалник е **~3s 998ms.** Не е прифатливо.
    170 
    171 **-Explain plan:**
    172 
    173 [[Image(EXPLAINUSER.png, 800px)]]
    174 
    175 Со користење на алатката за приказ на планот за извршување, забележуваме дека главната причина за доцнењето е Full Table Scan врз табелата Ticket и врз табелата Payment, па затоа правиме два индекса:
    176 
    177 [[Image(userIND.png, 800px)]]
    178 
    179 [[Image(USERpoind.png, 800px)]]
    180 
    181 Сега времето на извршување е **~139ms** и е прифатливо.
    182 
    183 **-Query plan:**
    184 
    185 [[Image(userQuery.png, 800px)]]
    186 
    187 === 12. View12 view_station_departures ===
    188 
    189 -**Опис**: Погледот view_station_departures функционира како дигитален информативен табла за станиците. Тој ги прикажува сите претстојни поаѓања, вклучувајќи ги името на рутата, статусот на патувањето и информациите за евентуални доцнења, подредени хронолошки.
    190 
    191 [[Image(departure.png, 800px)]]
    192 
    193 Времето потребно за извршување на овој прашалник е **~140ms.** Времето на извршување е прифатливо, заклучуваме дека не треба да го оптимизираме и тоа може да го видиме со query планот.
    194 
    195 **-Query plan:**
    196 
    197 [[Image(depQuery.png, 800px)]]
    198 
    199 === 13. View13 view_station_arrivals ===
    200 
    201 -**Опис**: Погледот view_station_arrivals служи како дигитален информатор за пристигнувања на железничките станици. Тој ги прикажува сите возови чие пристигнување се очекува во текот на денешниот ден или во иднина, вклучувајќи детали за рутата, планираното време на пристигнување и евентуални доцнења.
    202 
    203 [[Image(station.png, 800px)]]
    204 
    205 Времето потребно за извршување на овој прашалник е **~17ms.** Времето на извршување е прифатливо, заклучуваме дека не треба да го оптимизираме и тоа може да го видиме со query планот.
    206 
    207 **-Query plan:**
    208 
    209 [[Image(stationQuery.png, 800px)]]
    210 
    211 === 14. View14 vw_free_seats_per_trip===
    212 
    213 -**Опис**: Погледот vw_free_seats_per_trip овозможува реално следење на слободните капацитети за секое патување преку автоматска пресметка на разликата помеѓу вкупниот капацитет на возот и бројот на продадени билети.
    214 
    215 [[Image(freeseats.png, 800px)]]
    216 
    217 Времето потребно за извршување на овој прашалник е **~63ms.** Времето на извршување е прифатливо, заклучуваме дека не треба да го оптимизираме и тоа може да го видиме со query планот.
    218 
    219 **-Query plan:**
    220 
    221 [[Image(freeseatsView.png, 800px)]]