Changes between Version 2 and Version 3 of MenuMealView


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

--

Legend:

Unmodified
Added
Removed
Modified
  • MenuMealView

    v2 v3  
    8383== Тестирање на перформанси ==
    8484
    85 Примерите користат илустративни идентификатори и датуми. За споредливи мерења се избираат вредности што постојат во базата и се задржуваат истите податоци, филтри, услови за кеширање и број на повторувања. Статистиките за табелите треба да бидат ажурирани во двете состојби.
     85Мерењата се евидентирани во DBeaver на 14 септември 2026 година. „Пред индексирање“ и „по индексирање“ ги означуваат групите наведени како „без индекси“ и „со индекси“ во евиденцијата. Точниот сет присутни индекси во секоја група не е евидентиран; „без индекси“ не потврдува отсуство на индекси од примарни и уникатни клучеви.
    8686
    87 === Тест прашалници ===
     87Наведените времиња се клиентски мерења од DBeaver, а не серверските Planning Time и Execution Time од EXPLAIN ANALYZE. Нема приложени планови, типови на скенирање или податоци за баферите. Вредностите се во милисекунди (ms).
     88
     89=== Измерен прашалник ===
    8890
    8991{{{
    9092#!sql
    91 BEGIN READ ONLY;
    92 SET LOCAL statement_timeout = '60s';
    93 
    94 -- Тест 1: по категорија
    95 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    9693SELECT * FROM kbnteam.v_menu_meal
    97 WHERE cat_id = 1;
    98 
    99 -- Тест 2: по ресторан
    100 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    101 SELECT * FROM kbnteam.v_menu_meal
    102 WHERE rest_id = 1;
    103 
    104 ROLLBACK;
     94WHERE rest_id = 36 AND cat_id = 5;
    10595}}}
    10696
    10797=== Резултати пред индексирање ===
    10898
    109 Основната состојба ги задржува индексите на примарните клучеви и уникатните ограничувања. Останатите присутни индекси се евидентираат одделно. При споредба на заеднички индекси се користи истата почетна состојба за секој преглед.
    110 
    111 ||= Метрика ||= Тест 1 (по категорија) ||= Тест 2 (по ресторан) ||
    112 || Planning Time || ___ ms || ___ ms ||
    113 || Execution Time || ___ ms || ___ ms ||
    114 || Rows Returned || ___ || ___ ||
    115 || Начин на читање по табела || ___ || ___ ||
    116 || Shared Hit Blocks || ___ || ___ ||
    117 || Shared Read Blocks || ___ || ___ ||
    118 
    119 {{{
    120 -- Планови и резултати пред дополнителното индексирање:
    121 
    122 }}}
     99||= Метрика ||= Измерен резултат ||
     100|| Клиентско време (ms) || 106 ||
     101|| Приказ на мерењето || Статистика за 2 наредби: 106 ms извршување, 0 ms преземање, 106 ms вкупно ||
     102|| Прикажани / преземени редови || Не е утврден од приказот на статистиката ||
     103|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     104|| План, тип на скенирање и бафери || Не се приложени ||
    123105
    124106=== Дополнителни и заеднички индекси ===
    … …  
    160142=== Резултати по индексирање ===
    161143
    162 Мерењето ги користи истите тест прашалници и услови како почетното мерење.
     144||= Метрика ||= Измерен резултат ||
     145|| Клиентско време (ms) || 44 ||
     146|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     147|| Прикажани / преземени редови || 0 ||
     148|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     149|| План, тип на скенирање и бафери || Не се приложени ||
    163150
    164 ||= Метрика ||= Тест 1 (по категорија) ||= Тест 2 (по ресторан) ||
    165 || Planning Time || ___ ms || ___ ms ||
    166 || Execution Time || ___ ms || ___ ms ||
    167 || Rows Returned || ___ || ___ ||
    168 || Начин на читање по табела || ___ || ___ ||
    169 || Shared Hit Blocks || ___ || ___ ||
    170 || Shared Read Blocks || ___ || ___ ||
     151=== Анализа на резултатите ===
     152
     153||= Метрика ||= Пред ||= По ||= Промена на времето ||
     154|| Клиентско време (ms) || 106 || 44 || -58,5% ||
     155
     156Аритметичката разлика е 62 ms (58,5%) пократко време. Сепак, 106 ms е вкупно време во статистика за 2 наредби, а 44 ms е време од приказот на празен резултат. Ова не е контролирана споредба на изолирани SELECT извршувања. Потребни се повторени мерења со ист начин на мерење и пример што враќа јадења.
     157
     158Промената се пресметува како 100 × (време по - време пред) / време пред. Негативна вредност значи пократко време, а позитивна подолго време. Процентот ја опишува разликата меѓу прикажаните вредности.
     159
     160Ова се поединечни набљудувања. Не се евидентирани контролирани повторувања, исти услови за кеширање и оптоварување или точните дефиниции на присутните индекси. Затоа промената на времето не е доказ дека индексите се единствената причина. Не се приложени мерења за INSERT, UPDATE и DELETE.
     161
     162=== Дополнително тестирање - сè уште неизмерено ===
     163
     164Следниот прашалник служи за ново мерење на серверскиот план со истиот филтер. Неговите резултати не се пополнети со клиентските времиња наведени погоре. За споредба се задржуваат исти податоци и поставки, се евидентираат присутните индекси, се ажурираат статистиките и се прават повеќе повторувања во двете состојби. Се споредуваат медијаната на времињата и плановите.
    171165
    172166{{{
    173 -- Планови и резултати по дополнителното индексирање:
     167#!sql
     168BEGIN READ ONLY;
     169SET LOCAL statement_timeout = '60s';
    174170
     171EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     172SELECT * FROM kbnteam.v_menu_meal
     173WHERE rest_id = 36 AND cat_id = 5;
     174
     175ROLLBACK;
    175176}}}
    176177
    177 === Анализа на подобрување ===
    178 
    179 ||= Метрика ||= Пред ||= По ||= Промена (%) ||
    180 || Execution Time (Тест 1) || ___ ms || ___ ms || ___ % ||
    181 || Execution Time (Тест 2) || ___ ms || ___ ms || ___ % ||
    182 
    183 Промената се пресметува како 100 × (време пред − време по) / време пред, кога почетното време е поголемо од нула. Негативна вредност означува побавно извршување.
    184 
    185 Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.
     178||= Метрика за дополнителното тестирање ||= Пред ||= По ||
     179|| Planning Time (ms) || Не е измерено || Не е измерено ||
     180|| Execution Time (ms) || Не е измерено || Не е измерено ||
     181|| Тип на скенирање по табела || Не е евидентиран || Не е евидентиран ||
     182|| Shared Hit Blocks / Shared Read Blocks || Не се измерени || Не се измерени ||