wiki:phase4

Version 9 (modified by 201166, 6 months ago) ( diff )

--

Профилирање и оптимизација на извршување на прашалниците


Сценарио бр. 1 - Поглед за 20 најпродавани продукти на неделно ниво



Анализа на прашалникот пред партиционирање



Време на извршување на прашалникот пред партиционирање



  • Креирање на нова табела за нарачки, префрлување на податоци од старата табела за нарачки и креирање на две партиции за новата табела
    • Во првата партиција ќе се наоѓаат нарачките на неделно ниво (за секоја недела), а во втората партиција сите нарачки од минатото
    • Во табелата за нарачки се наоѓаат податоци до декември 2023 година, затоа и партициите се направени за тие датуми



Рекреирање на погледот за најпродаваните 20 продукти на неделно ниво



Анализа на прашалникот после партиционирање



Време на извршување на прашалникот после партиционирање



  • Додавање на индекс на колоната ‘id’ во новата табела за нарачки и исклучување на SEQ SCAN кај PostgreSQL Query Planner
    • Целта на исклучување на SEQ SCAN е да го натерате Query Planner-от да ги користи индексите



Анализа на прашалникот после додавање на индексот



Време на извршување на прашалникот после додавање на индексот



  • Функција со помош на која ќе се извршува префрлување на нарачките од партицијата за тековната недела во партицијата за нарачки за минатото
    • Оваа функција ќе се извршува на неделно ниво за да се префрлат нарачките од неделата која што завршува
    • Функцијата ќе се повикува автоматски преку Task Scheduler



  • Правилно креирање на партиции
    • Во претходниот пример, партициите се креирани на тој начин затоа што сите податоци за нарачки се за претходните години
    • Префрлување на податоци од партиција во партиција не би работело, затоа што во втората партиција (за нарачки во минатото) можеме да додаваме нарачки до крај на 2023 година (така е специфицирано во партицијата)
    • На ваков начин, првата партиција ќе ги има сите нарачки за тековната недела, додека пак втората партиција би ги имала сите нарачки за датуми помали од тековната недела, меѓутоа не специфицираме точно до кој датум, туку проверките ќе се вршат врз основа на CURRENT_DATE што го зима точниот моментален датум во реално време


Attachments (20)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.