Changes between Version 2 and Version 3 of CustomerLoyaltyFullView


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

--

Legend:

Unmodified
Added
Removed
Modified
  • CustomerLoyaltyFullView

    v2 v3  
    9595== Тестирање на перформанси ==
    9696
    97 Примерите користат илустративни идентификатори и датуми. За споредливи мерења се избираат вредности што постојат во базата и се задржуваат истите податоци, филтри, услови за кеширање и број на повторувања. Статистиките за табелите треба да бидат ажурирани во двете состојби.
     97Мерењата се евидентирани во DBeaver на 14 септември 2026 година. „Пред индексирање“ и „по индексирање“ ги означуваат групите наведени како „без индекси“ и „со индекси“ во евиденцијата. Точниот сет присутни индекси во секоја група не е евидентиран; „без индекси“ не потврдува отсуство на индекси од примарни и уникатни клучеви.
    9898
    99 === Тест прашалници ===
     99Наведените времиња се клиентски мерења од DBeaver, а не серверските Planning Time и Execution Time од EXPLAIN ANALYZE. Нема приложени планови, типови на скенирање или податоци за баферите. Вредностите се во милисекунди (ms).
     100
     101=== Измерен прашалник ===
    100102
    101103{{{
    102104#!sql
    103 BEGIN READ ONLY;
    104 SET LOCAL statement_timeout = '60s';
    105 
    106 -- Тест 1: по компанија
    107 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    108105SELECT * FROM kbnteam.v_customer_loyalty_full_v2
    109 WHERE company_id = 1;
    110 
    111 -- Тест 2: по ниво
    112 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    113 SELECT * FROM kbnteam.v_customer_loyalty_full_v2
    114 WHERE tier_id = 1;
    115 
    116 -- Тест 3: по клиент
    117 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    118 SELECT * FROM kbnteam.v_customer_loyalty_full_v2
    119 WHERE customer_user_id = 1;
    120 
    121 ROLLBACK;
     106WHERE customer_user_id = 500000;
    122107}}}
    123108
    124109=== Резултати пред индексирање ===
    125110
    126 Основната состојба ги задржува индексите на примарните клучеви и уникатните ограничувања. Останатите присутни индекси се евидентираат одделно. При споредба на заеднички индекси се користи истата почетна состојба за секој преглед.
    127 
    128 ||= Метрика ||= Тест 1 (по компанија) ||= Тест 2 (по ниво) ||= Тест 3 (по клиент) ||
    129 || Planning Time || ___ ms || ___ ms || ___ ms ||
    130 || Execution Time || ___ ms || ___ ms || ___ ms ||
    131 || Rows Returned || ___ || ___ || ___ ||
    132 || Начин на читање по табела || ___ || ___ || ___ ||
    133 || Shared Hit Blocks || ___ || ___ || ___ ||
    134 || Shared Read Blocks || ___ || ___ || ___ ||
    135 
    136 {{{
    137 -- Планови и резултати пред дополнителното индексирање:
    138 
    139 }}}
     111||= Метрика ||= Измерен резултат ||
     112|| Клиентско време (ms) || 687 ||
     113|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     114|| Прикажани / преземени редови || 1 ||
     115|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     116|| План, тип на скенирање и бафери || Не се приложени ||
    140117
    141118=== Дополнителни и заеднички индекси ===
    … …  
    172149=== Резултати по индексирање ===
    173150
    174 Мерењето ги користи истите тест прашалници и услови како почетното мерење.
     151||= Метрика ||= Измерен резултат ||
     152|| Клиентско време (ms) || 66 ||
     153|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     154|| Прикажани / преземени редови || 1 ||
     155|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     156|| План, тип на скенирање и бафери || Не се приложени ||
    175157
    176 ||= Метрика ||= Тест 1 (по компанија) ||= Тест 2 (по ниво) ||= Тест 3 (по клиент) ||
    177 || Planning Time || ___ ms || ___ ms || ___ ms ||
    178 || Execution Time || ___ ms || ___ ms || ___ ms ||
    179 || Rows Returned || ___ || ___ || ___ ||
    180 || Начин на читање по табела || ___ || ___ || ___ ||
    181 || Shared Hit Blocks || ___ || ___ || ___ ||
    182 || Shared Read Blocks || ___ || ___ || ___ ||
     158=== Анализа на резултатите ===
     159
     160||= Метрика ||= Пред ||= По ||= Промена на времето ||
     161|| Клиентско време (ms) || 687 || 66 || -90,4% ||
     162
     163Времето е пократко за 621 ms (90,4%), приближно 10,4 пати. Резултатот се однесува на пристап по конкретен клиент; не го потврдува истиот ефект за пребарување по компанија, ниво или за целосен преглед.
     164
     165Промената се пресметува како 100 × (време по - време пред) / време пред. Негативна вредност значи пократко време, а позитивна подолго време. Процентот ја опишува разликата меѓу прикажаните вредности.
     166
     167Ова се поединечни набљудувања. Не се евидентирани контролирани повторувања, исти услови за кеширање и оптоварување или точните дефиниции на присутните индекси. Затоа промената на времето не е доказ дека индексите се единствената причина. Не се приложени мерења за INSERT, UPDATE и DELETE.
     168
     169=== Дополнително тестирање - сè уште неизмерено ===
     170
     171Следниот прашалник служи за ново мерење на серверскиот план со истиот филтер. Неговите резултати не се пополнети со клиентските времиња наведени погоре. За споредба се задржуваат исти податоци и поставки, се евидентираат присутните индекси, се ажурираат статистиките и се прават повеќе повторувања во двете состојби. Се споредуваат медијаната на времињата и плановите.
    183172
    184173{{{
    185 -- Планови и резултати по дополнителното индексирање:
     174#!sql
     175BEGIN READ ONLY;
     176SET LOCAL statement_timeout = '60s';
    186177
     178EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     179SELECT * FROM kbnteam.v_customer_loyalty_full_v2
     180WHERE customer_user_id = 500000;
     181
     182ROLLBACK;
    187183}}}
    188184
    189 === Анализа на подобрување ===
    190 
    191 ||= Метрика ||= Пред ||= По ||= Промена (%) ||
    192 || Execution Time (Тест 1) || ___ ms || ___ ms || ___ % ||
    193 || Execution Time (Тест 2) || ___ ms || ___ ms || ___ % ||
    194 || Execution Time (Тест 3) || ___ ms || ___ ms || ___ % ||
    195 
    196 Промената се пресметува како 100 × (време пред − време по) / време пред, кога почетното време е поголемо од нула. Негативна вредност означува побавно извршување.
    197 
    198 Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.
     185||= Метрика за дополнителното тестирање ||= Пред ||= По ||
     186|| Planning Time (ms) || Не е измерено || Не е измерено ||
     187|| Execution Time (ms) || Не е измерено || Не е измерено ||
     188|| Тип на скенирање по табела || Не е евидентиран || Не е евидентиран ||
     189|| Shared Hit Blocks / Shared Read Blocks || Не се измерени || Не се измерени ||