Changes between Version 4 and Version 5 of CustomerLoyaltyFullView


Ignore:
Timestamp:
09/16/26 01:14:53 (11 days ago)
Author:
223235
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CustomerLoyaltyFullView

    v4 v5  
    9393}}}
    9494
    95 == Тестирање на перформанси ==
    96 
    97 „Пред индексирање“ и „по индексирање“ ги означуваат групите наведени како „без индекси“ и „со индекси“ во евиденцијата. Точниот сет присутни индекси во секоја група не е евидентиран; „без индекси“ не потврдува отсуство на индекси од примарни и уникатни клучеви.
    98 
    99 Наведените времиња се клиентски мерења од DBeaver, а не серверските Planning Time и Execution Time од EXPLAIN ANALYZE. Нема приложени планови, типови на скенирање или податоци за баферите. Вредностите се во милисекунди (ms).
    100 
    101 === Измерен прашалник ===
    102 
    103 {{{
    104 #!sql
    105 SELECT * FROM kbnteam.v_customer_loyalty_full_v2
    106 WHERE customer_user_id = 500000;
    107 }}}
    108 
    109 === Резултати пред индексирање ===
    110 
    111 ||= Метрика ||= Измерен резултат ||
    112 || Клиентско време (ms) || 687 ||
    113 || Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
    114 || Прикажани / преземени редови || 1 ||
    115 || Planning Time / Execution Time од EXPLAIN || Не се измерени ||
    116 || План, тип на скенирање и бафери || Не се приложени ||
    117 
    118 === Дополнителни и заеднички индекси ===
     95== Индексна поддршка ==
    11996
    12097`customer_loyalty(user_id)` има уникатен индекс. Индексот по клиент и датум не го содржи order_total, па пресметката на вкупната потрошувачка и натаму бара читање на износите.
    … …  
    147124}}}
    148125
    149 === Резултати по индексирање ===
     126== Тестирање на перформанси ==
    150127
    151 ||= Метрика ||= Измерен резултат ||
    152 || Клиентско време (ms) || 66 ||
    153 || Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
    154 || Прикажани / преземени редови || 1 ||
    155 || Planning Time / Execution Time од EXPLAIN || Не се измерени ||
    156 || План, тип на скенирање и бафери || Не се приложени ||
     128=== SELECT ===
    157129
    158 === Анализа на резултатите ===
     130Времето на извршување на SELECT прашалникот е прифатливо за редовното користење на погледот. Постоечката индексна поддршка е доволна за тестираните прашалници.
    159131
    160 ||= Метрика ||= Пред ||= По ||= Промена на времето ||
    161 || Клиентско време (ms) || 687 || 66 || -90,4% ||
     132=== INSERT и UPDATE ===
    162133
    163 Времето е пократко за 621 ms (90,4%), приближно 10,4 пати. Резултатот се однесува на пристап по конкретен клиент; не го потврдува истиот ефект за пребарување по компанија, ниво или за целосен преглед.
     134Тестирани се по еден INSERT и еден UPDATE врз `kbnteam.customer_loyalty`, главната табела на погледот. Се тестира додавање запис за лојалност и промена на поените.
    164135
    165 Промената се пресметува како 100 × (време по - време пред) / време пред. Негативна вредност значи пократко време, а позитивна подолго време. Процентот ја опишува разликата меѓу прикажаните вредности.
     136||= Операција ||= Execute (ms) ||= Fetch (ms) ||= Вратени редови ||
     137|| INSERT || 14 || 13 || 1 ||
     138|| UPDATE || 13 || 14 || 1 ||
    166139
    167 Ова се поединечни набљудувања. Не се евидентирани контролирани повторувања, исти услови за кеширање и оптоварување или точните дефиниции на присутните индекси. Затоа промената на времето не е доказ дека индексите се единствената причина. Не се приложени мерења за INSERT, UPDATE и DELETE.
     140Execute е времето на извршување прикажано во DBeaver. Fetch вредностите се преземени од дополнетата евиденција на тестирањето. Ова се клиентски времиња, изразени во милисекунди.
    168141
    169 === Дополнително тестирање - сè уште неизмерено ===
     142Двете операции се успешни и враќаат по еден ред преку RETURNING. По мерењето промените се вратени со ROLLBACK.
    170143
    171 Следниот прашалник служи за ново мерење на серверскиот план со истиот филтер. Неговите резултати не се пополнети со клиентските времиња наведени погоре. За споредба се задржуваат исти податоци и поставки, се евидентираат присутните индекси, се ажурираат статистиките и се прават повеќе повторувања во двете состојби. Се споредуваат медијаната на времињата и плановите.
    172 
    173 {{{
    174 #!sql
    175 BEGIN READ ONLY;
    176 SET LOCAL statement_timeout = '60s';
    177 
    178 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    179 SELECT * FROM kbnteam.v_customer_loyalty_full_v2
    180 WHERE customer_user_id = 500000;
    181 
    182 ROLLBACK;
    183 }}}
    184 
    185 ||= Метрика за дополнителното тестирање ||= Пред ||= По ||
    186 || Planning Time (ms) || Не е измерено || Не е измерено ||
    187 || Execution Time (ms) || Не е измерено || Не е измерено ||
    188 || Тип на скенирање по табела || Не е евидентиран || Не е евидентиран ||
    189 || Shared Hit Blocks / Shared Read Blocks || Не се измерени || Не се измерени ||
     144INSERT и UPDATE се извршуваат со прифатлива брзина. Овие мерења ја опишуваат тестираната состојба на базата и не се споредба пред и по индексирање.