Changes between Version 2 and Version 3 of DriverDeliveriesView


Ignore:
Timestamp:
09/15/26 02:04:01 (12 days ago)
Author:
223235
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DriverDeliveriesView

    v2 v3  
    9494== Тестирање на перформанси ==
    9595
    96 Примерите користат илустративни идентификатори и датуми. За споредливи мерења се избираат вредности што постојат во базата и се задржуваат истите податоци, филтри, услови за кеширање и број на повторувања. Статистиките за табелите треба да бидат ажурирани во двете состојби.
    97 
    98 === Тест прашалници ===
    99 
    100 {{{
    101 #!sql
    102 BEGIN READ ONLY;
    103 SET LOCAL statement_timeout = '60s';
    104 
    105 -- Тест 1: по доставувач и датум
    106 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     96Мерењата се евидентирани во DBeaver на 14 септември 2026 година. „Пред индексирање“ и „по индексирање“ ги означуваат групите наведени како „без индекси“ и „со индекси“ во евиденцијата. Точниот сет присутни индекси во секоја група не е евидентиран; „без индекси“ не потврдува отсуство на индекси од примарни и уникатни клучеви.
     97
     98Наведените времиња се клиентски мерења од DBeaver, а не серверските Planning Time и Execution Time од EXPLAIN ANALYZE. Нема приложени планови, типови на скенирање или податоци за баферите. Вредностите се во милисекунди (ms).
     99
     100=== Измерен прашалник ===
     101
     102{{{
     103#!sql
    107104SELECT * FROM kbnteam.v_driver_deliveries
    108 WHERE driver_user_id = 1
    109   AND delivery_date >= DATE '2026-09-01'
    110   AND delivery_date < DATE '2026-10-01';
    111 
    112 -- Тест 2: по компаниска нарачка
    113 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    114 SELECT * FROM kbnteam.v_driver_deliveries
    115 WHERE comp_order_id = 1;
    116 
    117 ROLLBACK;
     105WHERE driver_user_id = 450;
    118106}}}
    119107
    120108=== Резултати пред индексирање ===
    121109
    122 Основната состојба ги задржува индексите на примарните клучеви и уникатните ограничувања. Останатите присутни индекси се евидентираат одделно. При споредба на заеднички индекси се користи истата почетна состојба за секој преглед.
    123 
    124 ||= Метрика ||= Тест 1 (по доставувач и датум) ||= Тест 2 (по компаниска нарачка) ||
    125 || Planning Time || ___ ms || ___ ms ||
    126 || Execution Time || ___ ms || ___ ms ||
    127 || Rows Returned || ___ || ___ ||
    128 || Начин на читање по табела || ___ || ___ ||
    129 || Shared Hit Blocks || ___ || ___ ||
    130 || Shared Read Blocks || ___ || ___ ||
    131 
    132 {{{
    133 -- Планови и резултати пред дополнителното индексирање:
    134 
    135 }}}
     110||= Метрика ||= Измерен резултат ||
     111|| Клиентско време (ms) || околу 70000 ||
     112|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     113|| Прикажани / преземени редови || 200 преземени; вкупниот број не е утврден ||
     114|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     115|| План, тип на скенирање и бафери || Не се приложени ||
    136116
    137117=== Дополнителни и заеднички индекси ===
    … …  
    188168=== Резултати по индексирање ===
    189169
    190 Мерењето ги користи истите тест прашалници и услови како почетното мерење.
    191 
    192 ||= Метрика ||= Тест 1 (по доставувач и датум) ||= Тест 2 (по компаниска нарачка) ||
    193 || Planning Time || ___ ms || ___ ms ||
    194 || Execution Time || ___ ms || ___ ms ||
    195 || Rows Returned || ___ || ___ ||
    196 || Начин на читање по табела || ___ || ___ ||
    197 || Shared Hit Blocks || ___ || ___ ||
    198 || Shared Read Blocks || ___ || ___ ||
    199 
    200 {{{
    201 -- Планови и резултати по дополнителното индексирање:
    202 
    203 }}}
    204 
    205 === Анализа на подобрување ===
    206 
    207 ||= Метрика ||= Пред ||= По ||= Промена (%) ||
    208 || Execution Time (Тест 1) || ___ ms || ___ ms || ___ % ||
    209 || Execution Time (Тест 2) || ___ ms || ___ ms || ___ % ||
    210 
    211 Промената се пресметува како 100 × (време пред − време по) / време пред, кога почетното време е поголемо од нула. Негативна вредност означува побавно извршување.
    212 
    213 Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.
     170||= Метрика ||= Измерен резултат ||
     171|| Клиентско време (ms) || 48236 ||
     172|| Приказ на мерењето || Статистика за 2 наредби: 48208 ms извршување, 28 ms преземање, 48236 ms вкупно ||
     173|| Прикажани / преземени редови || Не е утврден од приказот на статистиката ||
     174|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     175|| План, тип на скенирање и бафери || Не се приложени ||
     176
     177=== Анализа на резултатите ===
     178
     179||= Метрика ||= Пред ||= По ||= Промена на времето ||
     180|| Клиентско време (ms) || околу 70000 || 48236 || Не се пресметува ||
     181
     182Споредбата е ориентациска. Во состојбата „без индекси“ се гледаат околу 1 min 10 s и 200 преземени редови, со ограничување на преземањето на 200. Во состојбата „со индекси“ се прикажува статистика за 2 наредби: 48208 ms извршување, 28 ms преземање и 48236 ms вкупно. Еден прикажан ред во статистиката не е бројот на достави. Не се пресметува процент на забрзување поради различниот опфат на мерењата.
     183
     184Ова се поединечни набљудувања. Не се евидентирани контролирани повторувања, исти услови за кеширање и оптоварување или точните дефиниции на присутните индекси. Затоа промената на времето не е доказ дека индексите се единствената причина. Не се приложени мерења за INSERT, UPDATE и DELETE.
     185
     186=== Дополнително тестирање - сè уште неизмерено ===
     187
     188Следниот прашалник служи за ново мерење на серверскиот план со истиот филтер. Неговите резултати не се пополнети со клиентските времиња наведени погоре. За споредба се задржуваат исти податоци и поставки, се евидентираат присутните индекси, се ажурираат статистиките и се прават повеќе повторувања во двете состојби. Се споредуваат медијаната на времињата и плановите.
     189
     190За овој дополнителен тест е предвиден лимит од 180 секунди, бидејќи забележаното клиентско време без индекси е околу 70 секунди. За клиентските мерења треба да се усогласи и бројот на преземени редови.
     191
     192{{{
     193#!sql
     194BEGIN READ ONLY;
     195SET LOCAL statement_timeout = '180s';
     196
     197EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     198SELECT * FROM kbnteam.v_driver_deliveries
     199WHERE driver_user_id = 450;
     200
     201ROLLBACK;
     202}}}
     203
     204||= Метрика за дополнителното тестирање ||= Пред ||= По ||
     205|| Planning Time (ms) || Не е измерено || Не е измерено ||
     206|| Execution Time (ms) || Не е измерено || Не е измерено ||
     207|| Тип на скенирање по табела || Не е евидентиран || Не е евидентиран ||
     208|| Shared Hit Blocks / Shared Read Blocks || Не се измерени || Не се измерени ||