= Напредна тема - партиционирање '''Членови на тим:''' * Aлександар Тодороски 231153 * Антонио Трајковски 231156 * Вељко Аџиќ 231267 Табелата `DUEL` има многу податоци и таа е една од наважниите и најголемите табели во нашиот систем. Барањето податоци ни неа е бавен процес и поради тоа искористивме '''партиционирање'''. Оваа ни помага да имаме многу добри перформанси при пребараување на податоци низ оваа табела, и кога користиме прашалници да не ја изминнуваме целата табела, туку дел кој е потребен. == Партиционирање на табелата Прво и основно, ние хористиме `range` партиционирање бидејќи имаме време кога се оддржал дуелот па најдобро е да правиме според тоа. Вењќе имаме DDL и податоци пополнети во нашиот систем ќе креираме нова табела каде ќе ставиме по што да партиционираме, затоа имаме `PARTITION BY RANGE(duel_date)`. [[Image(new_duel.png)]] Потоа мора да направиме поделби за секоја партиција од кога до кога да биде. Затоа тука креираме нова табела `DUEL_YEARS_RANGES` и ќе ги генерираме датумите на опсезите. Потоа со циклус ќе ги креираме генерираните партициите на `NEW_DUEL` со додделено име во формат`'new_duel_' + year`. [[Image(duel_year_ranges.png)]] == Мигрирање податоци во `NEW_DUEL` Одкако ги креираме партициите, ќе треба да се мигрираат податоците од старата табела во новата. Тоа го извршуваме со кверито подолу. [[Image(new_duel_migrate.png)]] Бидејќи ги копираме сите податоци од една табела во друга, вклучувајќи го и `id` кое е декларирано како `SERIAL`, секвенцата на `id` во нова табела не се ажурира и потребно е да се мигрира секвенцата. Тоа се извршува на следен начин: [[Image(new_duel_sequence.png)]] Табелите `TEAM_ROSTER`, `REFEREEING_DUEL` и `SCORE` ја референцираат табелата `DUEL` треба и нив да ги мигрираме. Затоа ги имаме креирано следниве табели: [[Image(new_tables.png)]] Овие табели исто треба да се мигрираат на следниот начин: [[Image(migrate_tables.png)]] [[Image(new_score_sequence.png)]] По ова, со помош на `ALTER TABLE` ќе ги поставиме старите ограничувања на новите табелите. [[Image(constraints.png)]] == Тестирање погледи ...