Changes between Version 3 and Version 4 of QueryOptimization


Ignore:
Timestamp:
06/15/26 04:31:49 (7 days ago)
Author:
231102
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v3 v4  
    251251'''Случај на употреба:''' студент ги прегледува своите пријави или службата проверува пријави во сесија. Перформансите се критични во периодите на пријавување.
    252252
    253 === Дефиниција (по преуредување) ===
    254 
    255 Дефиницијата ги подредува JOIN-овите така што студентскиот синџир е прв:
    256 
    257 {{{
    258 CREATE OR REPLACE VIEW public.vw_ispitni_prijavi AS
    259  SELECT sip.id AS prijava_id, ise.naziv AS sesija_naziv, s.indeks, l.ime, l.prezime,
    260     p.ime_predmet, sip.datum_prijava, sip.status AS prijava_status
    261    FROM sm_studenti s
    262      JOIN sm_studenti_smerovi ss ON ss.student_id = s.id
    263      JOIN sm_student_semestar_upis ssu ON ssu.studenti_smerovi_id = ss.id
    264      JOIN sm_student_upisan_kurs suk ON suk.student_semestar_upis_id = ssu.id
    265      JOIN sm_student_ispit_prijava sip ON sip.student_upisan_kurs_id = suk.id
    266      JOIN sm_ispitna_sesija ise ON sip.ispitna_sesija_id = ise.id
    267      JOIN korisnici k ON s.user_id = k.id
    268      JOIN lice l ON k.lice_id = l.id
    269      JOIN sm_kurs_realizacija kr ON suk.kurs_realizacija_id = kr.id
    270      JOIN sm_akreditacija ak ON kr.akreditacija_id = ak.id
    271      JOIN sm_predmet p ON ak.predmet_id = p.id;
     253=== Дефиниција (пред преуредување) ===
     254
     255{{{
     256CREATE OR REPLACE VIEW vw_ispitni_prijavi AS
     257SELECT sip.id     AS prijava_id,
     258       ise.naziv  AS sesija_naziv,
     259       s.indeks,
     260       l.ime,
     261       l.prezime,
     262       p.ime_predmet,
     263       sip.datum_prijava,
     264       sip.status AS prijava_status
     265FROM public.sm_student_ispit_prijava sip
     266         JOIN public.sm_ispitna_sesija ise ON sip.ispitna_sesija_id = ise.id
     267         JOIN public.sm_student_upisan_kurs suk ON sip.student_upisan_kurs_id = suk.id
     268         JOIN public.sm_kurs_realizacija kr ON suk.kurs_realizacija_id = kr.id
     269         JOIN public.sm_akreditacija ak ON kr.akreditacija_id = ak.id
     270         JOIN public.sm_predmet p ON ak.predmet_id = p.id
     271         JOIN public.sm_student_semestar_upis ssu ON suk.student_semestar_upis_id = ssu.id
     272         JOIN public.sm_studenti_smerovi ss ON ssu.studenti_smerovi_id = ss.id
     273         JOIN public.sm_studenti s ON ss.student_id = s.id
     274         JOIN public.korisnici k ON s.user_id = k.id
     275         JOIN public.lice l ON k.lice_id = l.id;
    272276}}}
    273277
     
    326330'''Цена на insert/update пред индексирање:''' insert '''64ms''', update '''26ms'''.
    327331
     332=== Дефиниција (по преуредување) ===
     333
     334Дефиницијата ги подредува JOIN-овите така што студентскиот синџир е прв:
     335
     336{{{
     337CREATE OR REPLACE VIEW public.vw_ispitni_prijavi AS
     338 SELECT sip.id AS prijava_id, ise.naziv AS sesija_naziv, s.indeks, l.ime, l.prezime,
     339    p.ime_predmet, sip.datum_prijava, sip.status AS prijava_status
     340   FROM sm_studenti s
     341     JOIN sm_studenti_smerovi ss ON ss.student_id = s.id
     342     JOIN sm_student_semestar_upis ssu ON ssu.studenti_smerovi_id = ss.id
     343     JOIN sm_student_upisan_kurs suk ON suk.student_semestar_upis_id = ssu.id
     344     JOIN sm_student_ispit_prijava sip ON sip.student_upisan_kurs_id = suk.id
     345     JOIN sm_ispitna_sesija ise ON sip.ispitna_sesija_id = ise.id
     346     JOIN korisnici k ON s.user_id = k.id
     347     JOIN lice l ON k.lice_id = l.id
     348     JOIN sm_kurs_realizacija kr ON suk.kurs_realizacija_id = kr.id
     349     JOIN sm_akreditacija ak ON kr.akreditacija_id = ak.id
     350     JOIN sm_predmet p ON ak.predmet_id = p.id;
     351}}}
     352
    328353=== Оптимизација (индекс + преуредување на прашалникот) ===
    329354