Changes between Version 1 and Version 2 of QueryOptimization


Ignore:
Timestamp:
06/12/26 20:10:15 (4 days ago)
Author:
231025
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v1 v2  
    11= Фаза 3: Индекси и оптимизација на прашалници =
     2
     3''' Проект: Traffic Violation Management System (V-TRACK) '''
    24
    35''' Членови на тимот '''
     
    154156}}}
    155157
    156 '''Explain план (пред / по индекс):'''
     158'''Без индекс'''[[BR]]
     159време на извршување: 6m4s
    157160[[Image(view1.png, 700px)]]
     161
     162'''По додавање на индекс'''[[BR]]
     163време на извршување: ~133ms
    158164[[Image(vew1-index.png, 700px)]]
    159 
    160 '''Времиња на извршување:'''
    161 * SELECT: 6m4s → '''~133ms'''
    162 * INSERT: 1,699s → '''0,066s'''
    163 * UPDATE: 0,081s → '''0,055s'''
    164165
    165166=== Поглед 2 — v_zapisnici_detalno ===
     
    170171}}}
    171172
    172 '''Explain план (пред / по индекс):'''
     173'''Без индекс'''[[BR]]
     174време на извршување: 5m59s
    173175[[Image(view2.png, 700px)]]
     176
     177'''По додавање на индекс'''[[BR]]
     178време на извршување: ~154ms
    174179[[Image(view2-index.png, 700px)]]
    175 
    176 '''Времиња на извршување:'''
    177 * SELECT: 5m59s → '''~154ms'''
    178 * INSERT: 3,962s → '''0,230s'''
    179 * UPDATE: 3,950s → '''0,053s'''
    180180
    181181=== Поглед 3 — v_neplateni_kazni ===
    182182Најбавна операција: `Seq Scan on uplata`. Join-условот (`u.id_zapisnik = z.id_na_zapisnik`) е ист како кај Поглед 2, '''па не е потребен нов индекс''' — се реискористува постоечкиот `idx_uplata_id_zapisnik`.
    183183
    184 '''Explain план (пред / по индекс):'''
     184'''Без индекс'''[[BR]]
     185време на извршување: 6,922s
    185186[[Image(view3.png, 700px)]]
     187
     188'''По додавање на индекс'''[[BR]]
     189време на извршување: ~121ms
    186190[[Image(view3-index.png, 700px)]]
    187 
    188 '''Времиња на извршување:'''
    189 * SELECT: 6,922s → '''~121ms'''
    190 * INSERT: 0,153s → '''0,134s'''
    191 * UPDATE: 1,990s → '''0,031s'''
    192191
    193192=== Поглед 4 — v_povtoreni_prekrsoci ===
    194193Аналитички поглед. План: `GROUP BY` / `HashAggregate` над цела `Zapisnik` — агрегацијата ги поминува сите редови, индекс не помага. Решение — '''материјализиран поглед'''; INSERT/UPDATE на основните табели остануваат исти.
    195194
    196 '''Explain план:'''
    197195[[Image(view4.png, 700px)]]
    198196
     
    202200Аналитички поглед. План: агрегација (`COUNT`, `MIN`, `MAX`) групирана по полицаец над цела `Zapisnik` — индекс не носи добивка. Решение — '''материјализиран поглед''' со периодично освежување.
    203201
    204 '''Explain план:'''
    205202[[Image(view5.png, 700px)]]
    206203
     
    210207Аналитички поглед. План: две одделни агрегации (над `Zapisnik`/`Stavka_Zapisnik` и над `Uplata`) па join — двете страни се скенираат во целост. Решение — '''материјализиран поглед''' со периодично освежување.
    211208
    212 '''Explain план:'''
    213209[[Image(view6.png, 700px)]]
    214210