Changes between Version 2 and Version 3 of ContractsRevenueView


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

--

Legend:

Unmodified
Added
Removed
Modified
  • ContractsRevenueView

    v2 v3  
    9898== Тестирање на перформанси ==
    9999
    100 Примерите користат илустративни идентификатори и датуми. За споредливи мерења се избираат вредности што постојат во базата и се задржуваат истите податоци, филтри, услови за кеширање и број на повторувања. Статистиките за табелите треба да бидат ажурирани во двете состојби.
    101 
    102 === Тест прашалници ===
    103 
    104 {{{
    105 #!sql
    106 BEGIN READ ONLY;
    107 SET LOCAL statement_timeout = '60s';
    108 
    109 -- Тест 1: по компанија
    110 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     100Мерењата се евидентирани во DBeaver на 14 септември 2026 година. „Пред индексирање“ и „по индексирање“ ги означуваат групите наведени како „без индекси“ и „со индекси“ во евиденцијата. Точниот сет присутни индекси во секоја група не е евидентиран; „без индекси“ не потврдува отсуство на индекси од примарни и уникатни клучеви.
     101
     102Наведените времиња се клиентски мерења од DBeaver, а не серверските Planning Time и Execution Time од EXPLAIN ANALYZE. Нема приложени планови, типови на скенирање или податоци за баферите. Вредностите се во милисекунди (ms).
     103
     104=== Измерен прашалник ===
     105
     106{{{
     107#!sql
    111108SELECT * FROM kbnteam.v_contracts_revenue
    112 WHERE company_id = 1;
    113 
    114 -- Тест 2: по ресторан
    115 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    116 SELECT * FROM kbnteam.v_contracts_revenue
    117 WHERE rest_id = 1;
    118 
    119 ROLLBACK;
     109WHERE company_id = 250;
    120110}}}
    121111
    122112=== Резултати пред индексирање ===
    123113
    124 Основната состојба ги задржува индексите на примарните клучеви и уникатните ограничувања. Останатите присутни индекси се евидентираат одделно. При споредба на заеднички индекси се користи истата почетна состојба за секој преглед.
    125 
    126 ||= Метрика ||= Тест 1 (по компанија) ||= Тест 2 (по ресторан) ||
    127 || Planning Time || ___ ms || ___ ms ||
    128 || Execution Time || ___ ms || ___ ms ||
    129 || Rows Returned || ___ || ___ ||
    130 || Начин на читање по табела || ___ || ___ ||
    131 || Shared Hit Blocks || ___ || ___ ||
    132 || Shared Read Blocks || ___ || ___ ||
    133 
    134 {{{
    135 -- Планови и резултати пред дополнителното индексирање:
    136 
    137 }}}
     114||= Метрика ||= Измерен резултат ||
     115|| Клиентско време (ms) || 2555 ||
     116|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     117|| Прикажани / преземени редови || 0 ||
     118|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     119|| План, тип на скенирање и бафери || Не се приложени ||
    138120
    139121=== Дополнителни и заеднички индекси ===
    … …  
    190172=== Резултати по индексирање ===
    191173
    192 Мерењето ги користи истите тест прашалници и услови како почетното мерење.
    193 
    194 ||= Метрика ||= Тест 1 (по компанија) ||= Тест 2 (по ресторан) ||
    195 || Planning Time || ___ ms || ___ ms ||
    196 || Execution Time || ___ ms || ___ ms ||
    197 || Rows Returned || ___ || ___ ||
    198 || Начин на читање по табела || ___ || ___ ||
    199 || Shared Hit Blocks || ___ || ___ ||
    200 || Shared Read Blocks || ___ || ___ ||
    201 
    202 {{{
    203 -- Планови и резултати по дополнителното индексирање:
    204 
    205 }}}
    206 
    207 === Анализа на подобрување ===
    208 
    209 ||= Метрика ||= Пред ||= По ||= Промена (%) ||
    210 || Execution Time (Тест 1) || ___ ms || ___ ms || ___ % ||
    211 || Execution Time (Тест 2) || ___ ms || ___ ms || ___ % ||
    212 
    213 Промената се пресметува како 100 × (време пред − време по) / време пред, кога почетното време е поголемо од нула. Негативна вредност означува побавно извршување.
    214 
    215 Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.
     174||= Метрика ||= Измерен резултат ||
     175|| Клиентско време (ms) || 1966 ||
     176|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     177|| Прикажани / преземени редови || 0 ||
     178|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     179|| План, тип на скенирање и бафери || Не се приложени ||
     180
     181=== Анализа на резултатите ===
     182
     183||= Метрика ||= Пред ||= По ||= Промена на времето ||
     184|| Клиентско време (ms) || 2555 || 1966 || -23,1% ||
     185
     186Времето е пократко за 589 ms (23,1%), но двата теста враќаат празен резултат. Од ова не може да се оцени перформансата на извештај што враќа договори и приходи. Потребно е дополнително мерење за компанија со соодветни податоци.
     187
     188Промената се пресметува како 100 × (време по - време пред) / време пред. Негативна вредност значи пократко време, а позитивна подолго време. Процентот ја опишува разликата меѓу прикажаните вредности.
     189
     190Ова се поединечни набљудувања. Не се евидентирани контролирани повторувања, исти услови за кеширање и оптоварување или точните дефиниции на присутните индекси. Затоа промената на времето не е доказ дека индексите се единствената причина. Не се приложени мерења за INSERT, UPDATE и DELETE.
     191
     192=== Дополнително тестирање - сè уште неизмерено ===
     193
     194Следниот прашалник служи за ново мерење на серверскиот план со истиот филтер. Неговите резултати не се пополнети со клиентските времиња наведени погоре. За споредба се задржуваат исти податоци и поставки, се евидентираат присутните индекси, се ажурираат статистиките и се прават повеќе повторувања во двете состојби. Се споредуваат медијаната на времињата и плановите.
     195
     196{{{
     197#!sql
     198BEGIN READ ONLY;
     199SET LOCAL statement_timeout = '60s';
     200
     201EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     202SELECT * FROM kbnteam.v_contracts_revenue
     203WHERE company_id = 250;
     204
     205ROLLBACK;
     206}}}
     207
     208||= Метрика за дополнителното тестирање ||= Пред ||= По ||
     209|| Planning Time (ms) || Не е измерено || Не е измерено ||
     210|| Execution Time (ms) || Не е измерено || Не е измерено ||
     211|| Тип на скенирање по табела || Не е евидентиран || Не е евидентиран ||
     212|| Shared Hit Blocks / Shared Read Blocks || Не се измерени || Не се измерени ||