Changes between Version 10 and Version 11 of QueryOptimization
- Timestamp:
- 05/26/26 23:34:07 (19 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
QueryOptimization
v10 v11 85 85 86 86 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. Ова време не е прифатливо во споредба со претходните погледи, каде времињата беа во милисекунди. Поради тоа, за овој поглед има потреба од оптимизација. 88 91 89 92 90 93 Од графичкиот план на извршување може да се забележи дека најбавната операција е Full Scan / Seq Scan на табелата transakcija. Тоа значи дека PostgreSQL ја пребарува целата табела transakcija за да ги пронајде редовите каде што smetka_isprakjac_id = 10000. Бидејќи трансакциите се табела која може да има многу голем број редови, ваквото целосно скенирање создава забавување. Ова покажува дека колоната smetka_isprakjac_id е добар кандидат за индексирање, бидејќи директно се користи во WHERE условот. Дополнително, бидејќи погледот може да се пребарува и според примачот, потребен е и индекс на smetka_primac_id. 91 94 95 [[Image(view4.1.png, width=800)]] 96 [[Image(view4.2.png, width=800)]] 97 92 98 93 99 По индексирањето, прашалникот враќа 240 редови, а execution времето изнесува 32 ms. Вкупното време прикажано е 404 ms, но од тоа 372 ms се однесуваат на fetching, односно преземање и прикажување на резултатите. Затоа како релевантно време за базата се зема execution времето од 32 ms. 94 100 101 [[Image(view4.3.png, width=800)]] 102 [[Image(view4.4.png, width=800)]] 103 104 105 95 106 96 107 Времето за UPDATE и INSERT операциите по индексирањето исто така е прифатливо. По креирањето на индексите, UPDATE операцијата врз табелата transakcija се извршува за 6 ms и INSERT за 2ms. 108 109 110 [[Image(view4.5.png, width=800)]] 97 111 98 112
