Changes between Version 10 and Version 11 of QueryOptimization


Ignore:
Timestamp:
05/26/26 23:34:07 (19 hours ago)
Author:
233248
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QueryOptimization

    v10 v11  
    8585
    8686
    87 Иницијалното време за извршување на операциите без дополнителен индекс е значително поголемо од претходните погледи. При UPDATE операција врз табелата transakcija, со филтер според smetka_isprakjac_id, времето изнесува околу 1 s 338 ms, односно 1 s 403 ms. Ова време не е прифатливо во споредба со претходните погледи, каде времињата беа во милисекунди. Поради тоа, за овој поглед има потреба од оптимизација.
     87[[Image(view4.png, width=800)]]
     88
     89
     90'''Иницијалното време''' за извршување на операциите без дополнителен индекс е значително поголемо од претходните погледи. При UPDATE операција врз табелата transakcija, со филтер според smetka_isprakjac_id, времето изнесува околу 1 s 338 ms, односно 1 s 403 ms. Ова време не е прифатливо во споредба со претходните погледи, каде времињата беа во милисекунди. Поради тоа, за овој поглед има потреба од оптимизација.
    8891
    8992
    9093Од графичкиот план на извршување може да се забележи дека најбавната операција е Full Scan / Seq Scan на табелата transakcija. Тоа значи дека PostgreSQL ја пребарува целата табела transakcija за да ги пронајде редовите каде што smetka_isprakjac_id = 10000. Бидејќи трансакциите се табела која може да има многу голем број редови, ваквото целосно скенирање создава забавување. Ова покажува дека колоната smetka_isprakjac_id е добар кандидат за индексирање, бидејќи директно се користи во WHERE условот. Дополнително, бидејќи погледот може да се пребарува и според примачот, потребен е и индекс на smetka_primac_id.
    9194
     95[[Image(view4.1.png, width=800)]]
     96[[Image(view4.2.png, width=800)]]
     97
    9298
    9399По индексирањето, прашалникот враќа 240 редови, а execution времето изнесува 32 ms. Вкупното време прикажано е 404 ms, но од тоа 372 ms се однесуваат на fetching, односно преземање и прикажување на резултатите. Затоа како релевантно време за базата се зема execution времето од 32 ms.
    94100
     101[[Image(view4.3.png, width=800)]]
     102[[Image(view4.4.png, width=800)]]
     103
     104
     105
    95106
    96107Времето за UPDATE и INSERT операциите по индексирањето исто така е прифатливо. По креирањето на индексите, UPDATE операцијата врз табелата transakcija се извршува за 6 ms и INSERT за 2ms.
     108
     109
     110[[Image(view4.5.png, width=800)]]
    97111
    98112