Changes between Version 2 and Version 3 of ReviewsFullView


Ignore:
Timestamp:
09/15/26 02:07:30 (13 days ago)
Author:
223235
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ReviewsFullView

    v2 v3  
    115115== Тестирање на перформанси ==
    116116
    117 Примерите користат илустративни идентификатори и датуми. За споредливи мерења се избираат вредности што постојат во базата и се задржуваат истите податоци, филтри, услови за кеширање и број на повторувања. Статистиките за табелите треба да бидат ажурирани во двете состојби.
    118 
    119 === Тест прашалници ===
    120 
    121 {{{
    122 #!sql
    123 BEGIN READ ONLY;
    124 SET LOCAL statement_timeout = '60s';
    125 
    126 -- Тест 1: по тип и компанија
    127 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     117Мерењата се евидентирани во DBeaver на 14 септември 2026 година. „Пред индексирање“ и „по индексирање“ ги означуваат групите наведени како „без индекси“ и „со индекси“ во евиденцијата. Точниот сет присутни индекси во секоја група не е евидентиран; „без индекси“ не потврдува отсуство на индекси од примарни и уникатни клучеви.
     118
     119Наведените времиња се клиентски мерења од DBeaver, а не серверските Planning Time и Execution Time од EXPLAIN ANALYZE. Нема приложени планови, типови на скенирање или податоци за баферите. Вредностите се во милисекунди (ms).
     120
     121=== Измерен прашалник ===
     122
     123{{{
     124#!sql
    128125SELECT * FROM kbnteam.v_reviews_full
    129 WHERE review_type = 'order' AND company_id = 1;
    130 
    131 -- Тест 2: по компанија
    132 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    133 SELECT * FROM kbnteam.v_reviews_full
    134 WHERE company_id = 1;
    135 
    136 -- Тест 3: по доставувач
    137 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    138 SELECT * FROM kbnteam.v_reviews_full
    139 WHERE driver_user_id = 1;
    140 
    141 ROLLBACK;
     126WHERE customer_user_id = 500000;
    142127}}}
    143128
    144129=== Резултати пред индексирање ===
    145130
    146 Основната состојба ги задржува индексите на примарните клучеви и уникатните ограничувања. Останатите присутни индекси се евидентираат одделно. При споредба на заеднички индекси се користи истата почетна состојба за секој преглед.
    147 
    148 ||= Метрика ||= Тест 1 (по тип и компанија) ||= Тест 2 (по компанија) ||= Тест 3 (по доставувач) ||
    149 || Planning Time || ___ ms || ___ ms || ___ ms ||
    150 || Execution Time || ___ ms || ___ ms || ___ ms ||
    151 || Rows Returned || ___ || ___ || ___ ||
    152 || Начин на читање по табела || ___ || ___ || ___ ||
    153 || Shared Hit Blocks || ___ || ___ || ___ ||
    154 || Shared Read Blocks || ___ || ___ || ___ ||
    155 
    156 {{{
    157 -- Планови и резултати пред дополнителното индексирање:
    158 
    159 }}}
     131||= Метрика ||= Измерен резултат ||
     132|| Клиентско време (ms) || 544 ||
     133|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     134|| Прикажани / преземени редови || 1 ||
     135|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     136|| План, тип на скенирање и бафери || Не се приложени ||
    160137
    161138=== Дополнителни и заеднички индекси ===
    … …  
    202179=== Резултати по индексирање ===
    203180
    204 Мерењето ги користи истите тест прашалници и услови како почетното мерење.
    205 
    206 ||= Метрика ||= Тест 1 (по тип и компанија) ||= Тест 2 (по компанија) ||= Тест 3 (по доставувач) ||
    207 || Planning Time || ___ ms || ___ ms || ___ ms ||
    208 || Execution Time || ___ ms || ___ ms || ___ ms ||
    209 || Rows Returned || ___ || ___ || ___ ||
    210 || Начин на читање по табела || ___ || ___ || ___ ||
    211 || Shared Hit Blocks || ___ || ___ || ___ ||
    212 || Shared Read Blocks || ___ || ___ || ___ ||
    213 
    214 {{{
    215 -- Планови и резултати по дополнителното индексирање:
    216 
    217 }}}
    218 
    219 === Анализа на подобрување ===
    220 
    221 ||= Метрика ||= Пред ||= По ||= Промена (%) ||
    222 || Execution Time (Тест 1) || ___ ms || ___ ms || ___ % ||
    223 || Execution Time (Тест 2) || ___ ms || ___ ms || ___ % ||
    224 || Execution Time (Тест 3) || ___ ms || ___ ms || ___ % ||
    225 
    226 Промената се пресметува како 100 × (време пред − време по) / време пред, кога почетното време е поголемо од нула. Негативна вредност означува побавно извршување.
    227 
    228 Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.
     181||= Метрика ||= Измерен резултат ||
     182|| Клиентско време (ms) || 55 ||
     183|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     184|| Прикажани / преземени редови || 1 ||
     185|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     186|| План, тип на скенирање и бафери || Не се приложени ||
     187
     188=== Анализа на резултатите ===
     189
     190||= Метрика ||= Пред ||= По ||= Промена на времето ||
     191|| Клиентско време (ms) || 544 || 55 || -89,9% ||
     192
     193Времето е пократко за 489 ms (89,9%), приближно 9,9 пати. Ова е забележан резултат за конкретниот клиент. Без план на извршување не може да се утврди кој индекс придонел за разликата. Користена е точната прикажана вредност 544 ms.
     194
     195Промената се пресметува како 100 × (време по - време пред) / време пред. Негативна вредност значи пократко време, а позитивна подолго време. Процентот ја опишува разликата меѓу прикажаните вредности.
     196
     197Ова се поединечни набљудувања. Не се евидентирани контролирани повторувања, исти услови за кеширање и оптоварување или точните дефиниции на присутните индекси. Затоа промената на времето не е доказ дека индексите се единствената причина. Не се приложени мерења за INSERT, UPDATE и DELETE.
     198
     199=== Дополнително тестирање - сè уште неизмерено ===
     200
     201Следниот прашалник служи за ново мерење на серверскиот план со истиот филтер. Неговите резултати не се пополнети со клиентските времиња наведени погоре. За споредба се задржуваат исти податоци и поставки, се евидентираат присутните индекси, се ажурираат статистиките и се прават повеќе повторувања во двете состојби. Се споредуваат медијаната на времињата и плановите.
     202
     203{{{
     204#!sql
     205BEGIN READ ONLY;
     206SET LOCAL statement_timeout = '60s';
     207
     208EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     209SELECT * FROM kbnteam.v_reviews_full
     210WHERE customer_user_id = 500000;
     211
     212ROLLBACK;
     213}}}
     214
     215||= Метрика за дополнителното тестирање ||= Пред ||= По ||
     216|| Planning Time (ms) || Не е измерено || Не е измерено ||
     217|| Execution Time (ms) || Не е измерено || Не е измерено ||
     218|| Тип на скенирање по табела || Не е евидентиран || Не е евидентиран ||
     219|| Shared Hit Blocks / Shared Read Blocks || Не се измерени || Не се измерени ||