Changes between Version 3 and Version 4 of MenuDrinkView


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

--

Legend:

Unmodified
Added
Removed
Modified
  • MenuDrinkView

    v3 v4  
    4848== Тестирање на перформанси ==
    4949
    50 Примерите користат илустративни идентификатори и датуми. За споредливи мерења се избираат вредности што постојат во базата и се задржуваат истите податоци, филтри, услови за кеширање и број на повторувања. Статистиките за табелите треба да бидат ажурирани во двете состојби.
     50Мерењата се евидентирани во DBeaver на 14 септември 2026 година. „Пред индексирање“ и „по индексирање“ ги означуваат групите наведени како „без индекси“ и „со индекси“ во евиденцијата. Точниот сет присутни индекси во секоја група не е евидентиран; „без индекси“ не потврдува отсуство на индекси од примарни и уникатни клучеви.
    5151
    52 === Тест прашалници ===
     52Наведените времиња се клиентски мерења од DBeaver, а не серверските Planning Time и Execution Time од EXPLAIN ANALYZE. Нема приложени планови, типови на скенирање или податоци за баферите. Вредностите се во милисекунди (ms).
     53
     54=== Измерен прашалник ===
    5355
    5456{{{
    5557#!sql
    56 BEGIN READ ONLY;
    57 SET LOCAL statement_timeout = '60s';
    58 
    59 -- Тест 1: целосен преглед
    60 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    61 SELECT * FROM kbnteam.v_menu_drink;
    62 
    63 -- Тест 2: по ресторан
    64 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    6558SELECT * FROM kbnteam.v_menu_drink
    66 WHERE rest_id = 1;
    67 
    68 ROLLBACK;
     59WHERE rest_id = 36;
    6960}}}
    7061
    7162=== Резултати пред индексирање ===
    7263
    73 Основната состојба ги задржува индексите на примарните клучеви и уникатните ограничувања. Останатите присутни индекси се евидентираат одделно. При споредба на заеднички индекси се користи истата почетна состојба за секој преглед.
    74 
    75 ||= Метрика ||= Тест 1 (целосен преглед) ||= Тест 2 (по ресторан) ||
    76 || Planning Time || ___ ms || ___ ms ||
    77 || Execution Time || ___ ms || ___ ms ||
    78 || Rows Returned || ___ || ___ ||
    79 || Начин на читање по табела || ___ || ___ ||
    80 || Shared Hit Blocks || ___ || ___ ||
    81 || Shared Read Blocks || ___ || ___ ||
    82 
    83 {{{
    84 -- Планови и резултати пред дополнителното индексирање:
    85 
    86 }}}
     64||= Метрика ||= Измерен резултат ||
     65|| Клиентско време (ms) || 147 ||
     66|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     67|| Прикажани / преземени редови || 2 ||
     68|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     69|| План, тип на скенирање и бафери || Не се приложени ||
    8770
    8871=== Дополнителни и заеднички индекси ===
    … …  
    9073`drink(rest_id, drink_name)` е покриен со уникатното ограничување `uq_drink_restaurant_name`, а `restaurant(rest_id)` со примарен клуч. За овој преглед нема дополнителен индекс.
    9174
    92 Нема дополнителна CREATE INDEX наредба за овој преглед. Двете мерења го користат истото основно покривање со индекси.
     75Нема дополнителна CREATE INDEX наредба за овој преглед. Тековната дефиниција се потпира на основните индекси. Евиденцијата не го потврдува точниот сет индекси во двете измерени состојби.
    9376
    9477=== Проверка на индексите ===
    … …  
    10588=== Резултати по индексирање ===
    10689
    107 Мерењето ги користи истите тест прашалници и услови како почетното мерење.
     90||= Метрика ||= Измерен резултат ||
     91|| Клиентско време (ms) || 37 ||
     92|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     93|| Прикажани / преземени редови || 2 ||
     94|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     95|| План, тип на скенирање и бафери || Не се приложени ||
    10896
    109 ||= Метрика ||= Тест 1 (целосен преглед) ||= Тест 2 (по ресторан) ||
    110 || Planning Time || ___ ms || ___ ms ||
    111 || Execution Time || ___ ms || ___ ms ||
    112 || Rows Returned || ___ || ___ ||
    113 || Начин на читање по табела || ___ || ___ ||
    114 || Shared Hit Blocks || ___ || ___ ||
    115 || Shared Read Blocks || ___ || ___ ||
     97=== Анализа на резултатите ===
     98
     99||= Метрика ||= Пред ||= По ||= Промена на времето ||
     100|| Клиентско време (ms) || 147 || 37 || -74,8% ||
     101
     102Времето е пократко за 110 ms (74,8%). Уникатниот индекс по ресторан и назив веќе го поддржува филтерот, а во тековната дефиниција нема дополнителен индекс за овој поглед. Разликата не докажува корист од нов индекс; можни се разлики во кеширањето и условите на мерење.
     103
     104Промената се пресметува како 100 × (време по - време пред) / време пред. Негативна вредност значи пократко време, а позитивна подолго време. Процентот ја опишува разликата меѓу прикажаните вредности.
     105
     106Ова се поединечни набљудувања. Не се евидентирани контролирани повторувања, исти услови за кеширање и оптоварување или точните дефиниции на присутните индекси. Затоа промената на времето не е доказ дека индексите се единствената причина. Не се приложени мерења за INSERT, UPDATE и DELETE.
     107
     108=== Дополнително тестирање - сè уште неизмерено ===
     109
     110Следниот прашалник служи за ново мерење на серверскиот план со истиот филтер. Неговите резултати не се пополнети со клиентските времиња наведени погоре. За споредба се задржуваат исти податоци и поставки, се евидентираат присутните индекси, се ажурираат статистиките и се прават повеќе повторувања во двете состојби. Се споредуваат медијаната на времињата и плановите.
    116111
    117112{{{
    118 -- Планови и резултати по дополнителното индексирање:
     113#!sql
     114BEGIN READ ONLY;
     115SET LOCAL statement_timeout = '60s';
    119116
     117EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     118SELECT * FROM kbnteam.v_menu_drink
     119WHERE rest_id = 36;
     120
     121ROLLBACK;
    120122}}}
    121123
    122 === Анализа на подобрување ===
    123 
    124 ||= Метрика ||= Пред ||= По ||= Промена (%) ||
    125 || Execution Time (Тест 1) || ___ ms || ___ ms || ___ % ||
    126 || Execution Time (Тест 2) || ___ ms || ___ ms || ___ % ||
    127 
    128 Промената се пресметува како 100 × (време пред − време по) / време пред, кога почетното време е поголемо од нула. Негативна вредност означува побавно извршување.
    129 
    130 Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.
    131 
    132 Разлика во времињата кај непроменет сет индекси не е доказ за подобрување од нов индекс.
     124||= Метрика за дополнителното тестирање ||= Пред ||= По ||
     125|| Planning Time (ms) || Не е измерено || Не е измерено ||
     126|| Execution Time (ms) || Не е измерено || Не е измерено ||
     127|| Тип на скенирање по табела || Не е евидентиран || Не е евидентиран ||
     128|| Shared Hit Blocks / Shared Read Blocks || Не се измерени || Не се измерени ||