Changes between Version 2 and Version 3 of CompanyBillingOverviewView


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

--

Legend:

Unmodified
Added
Removed
Modified
  • CompanyBillingOverviewView

    v2 v3  
    6767== Тестирање на перформанси ==
    6868
    69 Примерите користат илустративни идентификатори и датуми. За споредливи мерења се избираат вредности што постојат во базата и се задржуваат истите податоци, филтри, услови за кеширање и број на повторувања. Статистиките за табелите треба да бидат ажурирани во двете состојби.
     69Мерењата се евидентирани во DBeaver на 14 септември 2026 година. „Пред индексирање“ и „по индексирање“ ги означуваат групите наведени како „без индекси“ и „со индекси“ во евиденцијата. Точниот сет присутни индекси во секоја група не е евидентиран; „без индекси“ не потврдува отсуство на индекси од примарни и уникатни клучеви.
    7070
    71 === Тест прашалници ===
     71Наведените времиња се клиентски мерења од DBeaver, а не серверските Planning Time и Execution Time од EXPLAIN ANALYZE. Нема приложени планови, типови на скенирање или податоци за баферите. Вредностите се во милисекунди (ms).
     72
     73=== Измерен прашалник ===
    7274
    7375{{{
    7476#!sql
    75 BEGIN READ ONLY;
    76 SET LOCAL statement_timeout = '60s';
    77 
    78 -- Тест 1: по компанија
    79 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    8077SELECT * FROM kbnteam.v_company_billing_overview
    81 WHERE company_id = 1;
    82 
    83 -- Тест 2: по компаниска нарачка
    84 EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
    85 SELECT * FROM kbnteam.v_company_billing_overview
    86 WHERE comp_order_id = 1;
    87 
    88 ROLLBACK;
     78WHERE company_id = 250;
    8979}}}
    9080
    9181=== Резултати пред индексирање ===
    9282
    93 Основната состојба ги задржува индексите на примарните клучеви и уникатните ограничувања. Останатите присутни индекси се евидентираат одделно. При споредба на заеднички индекси се користи истата почетна состојба за секој преглед.
    94 
    95 ||= Метрика ||= Тест 1 (по компанија) ||= Тест 2 (по компаниска нарачка) ||
    96 || Planning Time || ___ ms || ___ ms ||
    97 || Execution Time || ___ ms || ___ ms ||
    98 || Rows Returned || ___ || ___ ||
    99 || Начин на читање по табела || ___ || ___ ||
    100 || Shared Hit Blocks || ___ || ___ ||
    101 || Shared Read Blocks || ___ || ___ ||
    102 
    103 {{{
    104 -- Планови и резултати пред дополнителното индексирање:
    105 
    106 }}}
     83||= Метрика ||= Измерен резултат ||
     84|| Клиентско време (ms) || 108 ||
     85|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     86|| Прикажани / преземени редови || 12 ||
     87|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     88|| План, тип на скенирање и бафери || Не се приложени ||
    10789
    10890=== Дополнителни и заеднички индекси ===
    … …  
    144126=== Резултати по индексирање ===
    145127
    146 Мерењето ги користи истите тест прашалници и услови како почетното мерење.
     128||= Метрика ||= Измерен резултат ||
     129|| Клиентско време (ms) || 118 ||
     130|| Приказ на мерењето || Време прикажано со резултатот во DBeaver ||
     131|| Прикажани / преземени редови || 12 ||
     132|| Planning Time / Execution Time од EXPLAIN || Не се измерени ||
     133|| План, тип на скенирање и бафери || Не се приложени ||
    147134
    148 ||= Метрика ||= Тест 1 (по компанија) ||= Тест 2 (по компаниска нарачка) ||
    149 || Planning Time || ___ ms || ___ ms ||
    150 || Execution Time || ___ ms || ___ ms ||
    151 || Rows Returned || ___ || ___ ||
    152 || Начин на читање по табела || ___ || ___ ||
    153 || Shared Hit Blocks || ___ || ___ ||
    154 || Shared Read Blocks || ___ || ___ ||
     135=== Анализа на резултатите ===
     136
     137||= Метрика ||= Пред ||= По ||= Промена на времето ||
     138|| Клиентско време (ms) || 108 || 118 || +9,3% ||
     139
     140Времето е подолго за 10 ms (9,3%). Во ова мерење нема забрзување по индексирањето. Малата апсолутна разлика бара повторени мерења пред да се заклучи дека постои трајно влошување.
     141
     142Промената се пресметува како 100 × (време по - време пред) / време пред. Негативна вредност значи пократко време, а позитивна подолго време. Процентот ја опишува разликата меѓу прикажаните вредности.
     143
     144Ова се поединечни набљудувања. Не се евидентирани контролирани повторувања, исти услови за кеширање и оптоварување или точните дефиниции на присутните индекси. Затоа промената на времето не е доказ дека индексите се единствената причина. Не се приложени мерења за INSERT, UPDATE и DELETE.
     145
     146=== Дополнително тестирање - сè уште неизмерено ===
     147
     148Следниот прашалник служи за ново мерење на серверскиот план со истиот филтер. Неговите резултати не се пополнети со клиентските времиња наведени погоре. За споредба се задржуваат исти податоци и поставки, се евидентираат присутните индекси, се ажурираат статистиките и се прават повеќе повторувања во двете состојби. Се споредуваат медијаната на времињата и плановите.
    155149
    156150{{{
    157 -- Планови и резултати по дополнителното индексирање:
     151#!sql
     152BEGIN READ ONLY;
     153SET LOCAL statement_timeout = '60s';
    158154
     155EXPLAIN (ANALYZE, BUFFERS, VERBOSE)
     156SELECT * FROM kbnteam.v_company_billing_overview
     157WHERE company_id = 250;
     158
     159ROLLBACK;
    159160}}}
    160161
    161 === Анализа на подобрување ===
    162 
    163 ||= Метрика ||= Пред ||= По ||= Промена (%) ||
    164 || Execution Time (Тест 1) || ___ ms || ___ ms || ___ % ||
    165 || Execution Time (Тест 2) || ___ ms || ___ ms || ___ % ||
    166 
    167 Промената се пресметува како 100 × (време пред − време по) / време пред, кога почетното време е поголемо од нула. Негативна вредност означува побавно извршување.
    168 
    169 Изборот меѓу секвенцијално читање, индексно читање и други планови зависи од обемот на податоците, селективноста на филтрите и статистиките. Индексите не гарантираат забрзување или отстранување на сортирањата и спојувањата. Плановите и времињата се утврдуваат со мерење.
     162||= Метрика за дополнителното тестирање ||= Пред ||= По ||
     163|| Planning Time (ms) || Не е измерено || Не е измерено ||
     164|| Execution Time (ms) || Не е измерено || Не е измерено ||
     165|| Тип на скенирање по табела || Не е евидентиран || Не е евидентиран ||
     166|| Shared Hit Blocks / Shared Read Blocks || Не се измерени || Не се измерени ||