| 94 | | == Тестирање на перформанси == |
| 95 | | |
| 96 | | „Пред индексирање“ и „по индексирање“ ги означуваат групите наведени како „без индекси“ и „со индекси“ во евиденцијата. Точниот сет присутни индекси во секоја група не е евидентиран; „без индекси“ не потврдува отсуство на индекси од примарни и уникатни клучеви. |
| 97 | | |
| 98 | | Наведените времиња се клиентски мерења од DBeaver, а не серверските Planning Time и Execution Time од EXPLAIN ANALYZE. Нема приложени планови, типови на скенирање или податоци за баферите. Вредностите се во милисекунди (ms). |
| 99 | | |
| 100 | | === Измерен прашалник === |
| 101 | | |
| 102 | | {{{ |
| 103 | | #!sql |
| 104 | | SELECT * FROM kbnteam.v_driver_deliveries |
| 105 | | WHERE driver_user_id = 450; |
| 106 | | }}} |
| 107 | | |
| 108 | | === Резултати пред индексирање === |
| 109 | | |
| 110 | | ||= Метрика ||= Измерен резултат || |
| 111 | | || Клиентско време (ms) || околу 70000 || |
| 112 | | || Приказ на мерењето || Време прикажано со резултатот во DBeaver || |
| 113 | | || Прикажани / преземени редови || 200 преземени; вкупниот број не е утврден || |
| 114 | | || Planning Time / Execution Time од EXPLAIN || Не се измерени || |
| 115 | | || План, тип на скенирање и бафери || Не се приложени || |
| 116 | | |
| 117 | | === Дополнителни и заеднички индекси === |
| | 94 | == Индексна поддршка == |
| 177 | | === Анализа на резултатите === |
| 178 | | |
| 179 | | ||= Метрика ||= Пред ||= По ||= Промена на времето || |
| 180 | | || Клиентско време (ms) || околу 70000 || 48236 || Не се пресметува || |
| 181 | | |
| 182 | | Споредбата е ориентациска. Во состојбата „без индекси“ се гледаат околу 1 min 10 s и 200 преземени редови, со ограничување на преземањето на 200. Во состојбата „со индекси“ се прикажува статистика за 2 наредби: 48208 ms извршување, 28 ms преземање и 48236 ms вкупно. Еден прикажан ред во статистиката не е бројот на достави. Не се пресметува процент на забрзување поради различниот опфат на мерењата. |
| 183 | | |
| 184 | | Ова се поединечни набљудувања. Не се евидентирани контролирани повторувања, исти услови за кеширање и оптоварување или точните дефиниции на присутните индекси. Затоа промената на времето не е доказ дека индексите се единствената причина. Не се приложени мерења за INSERT, UPDATE и DELETE. |
| 185 | | |
| 186 | | === Дополнително тестирање - сè уште неизмерено === |
| 187 | | |
| 188 | | Следниот прашалник служи за ново мерење на серверскиот план со истиот филтер. Неговите резултати не се пополнети со клиентските времиња наведени погоре. За споредба се задржуваат исти податоци и поставки, се евидентираат присутните индекси, се ажурираат статистиките и се прават повеќе повторувања во двете состојби. Се споредуваат медијаната на времињата и плановите. |
| 189 | | |
| 190 | | За овој дополнителен тест е предвиден лимит од 180 секунди, бидејќи забележаното клиентско време без индекси е околу 70 секунди. За клиентските мерења треба да се усогласи и бројот на преземени редови. |
| | 149 | Мерењата се евидентирани во DBeaver. Времињата се во милисекунди (ms). |
| 204 | | ||= Метрика за дополнителното тестирање ||= Пред ||= По || |
| 205 | | || Planning Time (ms) || Не е измерено || Не е измерено || |
| 206 | | || Execution Time (ms) || Не е измерено || Не е измерено || |
| 207 | | || Тип на скенирање по табела || Не е евидентиран || Не е евидентиран || |
| 208 | | || Shared Hit Blocks / Shared Read Blocks || Не се измерени || Не се измерени || |
| | 157 | ||= Мерење ||= Клиентско време (ms) ||= Приказ во DBeaver || |
| | 158 | || Пред индексирање || околу 70000 || Преземени 200 редови || |
| | 159 | || По индексирање || 48236 || Вкупно време за 2 наредби || |
| | 160 | |
| | 161 | Во статистиката по индексирањето се прикажани следните времиња: |
| | 162 | |
| | 163 | ||= Метрика ||= Време (ms) || |
| | 164 | || Execute || 48208 || |
| | 165 | || Fetch || 28 || |
| | 166 | || Вкупно || 48236 || |
| | 167 | |
| | 168 | Првото мерење прикажува околу 1 минута и 10 секунди за 200 редови, а второто статистика за две наредби. Споредбата е ориентациска поради различниот начин на мерење. |
| | 169 | |
| | 170 | === INSERT и UPDATE === |
| | 171 | |
| | 172 | Тестирани се по еден INSERT и еден UPDATE врз `kbnteam.delivery`, главната табела на погледот. Се тестира додавање достава и промена на забелешката. |
| | 173 | |
| | 174 | ||= Операција ||= Execute (ms) ||= Fetch (ms) ||= Вратени редови || |
| | 175 | || INSERT || 13 || 16 || 1 || |
| | 176 | || UPDATE || 13 || 13 || 1 || |
| | 177 | |
| | 178 | Execute е времето на извршување прикажано во DBeaver. Fetch вредностите се преземени од дополнетата евиденција на тестирањето. Ова се клиентски времиња, изразени во милисекунди. |
| | 179 | |
| | 180 | Двете операции се успешни и враќаат по еден ред преку RETURNING. По мерењето промените се вратени со ROLLBACK. |
| | 181 | |
| | 182 | INSERT и UPDATE се извршуваат со прифатлива брзина. Овие мерења ја опишуваат тестираната состојба на базата и не се споредба пред и по индексирање. |