Ako premazávať veľké množstvo záznamov (príloh) v agende Odoslané e-maily

Veľký počet odoslaných e-mailov s prílohami v agende Odoslané e-maily môže mať za následok zväčšenie veľkosti databázy v ráde GB a tým spomaľovať dobu trvania zálohovania. Pri veľkej veľkosti príloh je preto vhodné zvážiť premazanie historických e-mailov alebo vynulovanie veľkosti príloh.

Do systému ABRA Gen bola doplnená možnosť vykonania odstránenia e-mailov alebo vynulovania veľkosti príloh za zvolené obmedzenie (stáří dokladov, e-mailový účet, rad dokladu, používateľ, ktorý zápis vytvoril, a obsah predmetu e-mailu) pomocou naplánovanej úlohy automatizačného servera.

Pred konfiguráciou naplánovanej úlohy typu “Premazanie záznamov z agendy Odoslané e-maily“ je ale najprv vhodné overiť, či je odstránenie záznamov odoslaných e-mailov vhodné riešiť a ktoré e-maily zaberajú v databáze viac miesta.

1. Zistenie veľkosti príloh v agende Odoslané e-maily

Na zistenie celkovej veľkosti príloh v agende Odoslané e-maily a zistenie, pre ktoré e-mailové účty a rady dokladov je najväčšia veľkosť príloh, vznikla nová funkcia, ktorá sa spúšťa z agendy Firemné údaje, záložka Technické nástroje - Analýza veľkosti príloh v agende Odoslané e-maily.

Výsledok zistenia sa otvorí vo webovom prehliadači formou vizualizácie a tabuliek a obsahuje nasledujúce informácie:

  • celková veľkosť príloh

  • celková veľkosť príloh podľa roku dátumu dokladu

  • celková veľkosť príloh podľa e-mailového účtu

  • celková veľkosť príloh podľa radu dokladu

  • celkový počet záznamov podľa jednotlivých rokov a e-mailových účtov TOP 10

  • prípadne celková veľkosť príloh podľa vybranej dĺžky prefixu predmetu e-mailu

Všetky údaje sú zobrazené formou vizualizácie aj tabuľkou so zistenými počtami, viď obrázok.

Všetky údaje sú zobrazené formou vizualizácie aj tabuľkou so zistenou veľkosťou príloh v bajtoch.

2. Naplánovaná úloha typu “Premazanie záznamov z agendy Odoslané e-maily

Spustenie premazávania odporúčame nastaviť na neprodukčný čas, zvyčajne v nočných hodinách. Pre prípad mazania veľkého množstva záznamov, ktorých mazanie by mohlo trvať až niekoľko hodín, je v úlohe obsiahnutá možnosť stanoviť maximálnu dobu jej trvania.

Úlohu teda nastavíme napr. na spustenie raz denne do 2:00 s maximálnou dobou odmazávania na 180 min.

Premazávanie by nemalo byť nastavené tak, aby kolidovalo s inou náročnou akciou, napr. so zálohovaním alebo uzávierkami.

Nastavíme, či sa majú mazať doklady alebo iba vynulovať veľkosť príloh e-mailov (oba varianty sa týkajú iba záznamov odoslaných e-mailov, nie dátových správ), ako staré záznamy sa majú mazať a pre aké e-mailové účty a rady dokladov, prípadne od akých používateľov alebo s akým obsahom predmetov e-mailov.

Týmto máme úlohu nastavenú a systém nám bude pravidelne spúšťať premazávanie starých e-mailov alebo príloh.

Odstránenie záznamov na žiadnej z databázových platforiem nevedie k okamžitému zodpovedajúcemu zníženiu veľkosti databázy. Dôvodom je vznik fragmentácie dátových stránok odmazávaním len niektorých záznamov. Predstaviť si celý problém fragmentácie pri odoberaní záznamov z tabuliek si možno zjednodušene vysvetliť na príklade odoberania kariet pacientov z fyzickej kartotéky, keď aj napriek čiastočnému vyprázdneniu kariet pacientov zo zásuvky s pacientmi začínajúcimi na písmeno A nemožno túto zásuvku celú zrušiť, kým v nej zostávajú ešte nejaké záznamy.

V databáze Firebird dôjde k čiastočnému zmenšeniu veľkosti databázy. Ak sa vyprázdni celá databázová stránka, tak sa môže trochu zmenšiť veľkosť celej databázy, ale toto zmenšenie je minimálne a tiež nezodpovedá uvoľnenému miestu podľa odstránených záznamov.

V databáze MSSQL dôjde kvôli vzniknutej väčšej fragmentácii indexov dokonca k zväčšeniu veľkosti databázy. Treba s týmto nečakaným efektom počítať a pripraviť zodpovedajúce nové voľné miesto.

Na vznik väčšej fragmentácie je potrebné upozorniť správcu databázy a dohodnúť, aby nedochádzalo k súbehu akcie údržby databázy (údržby indexov viď. Odporúčanie pre MSSQL MSSQL/Microsoft SQL Server).

3. Dosiahnutie zmenšenia zálohy databázy po odstránení záznamov

Finálne dosiahnutie zmenšenia veľkosti zálohy databázy dosiahneme vykonaním údržby databázy.

V databáze Firebird je tento proces zaistený vykonaním zálohy a následnej obnovy zo zálohy.

Napríklad znížením počtu stránok po obnove o 253080, čo zodpovedá zmenšeniu databázy o 3,8 GB (253080 * 16kB / 1024 / 1024 = GB), pred obnovou Data pages: 1378536, average fill: 68%, po obnove Data pages: 1125456, average fill: 84%.

V databáze MSSQL dosiahneme obdobné spustením akcie údržby indexov viď. Údržba databázy - Odporúčanie pre MSSQL MSSQL/Microsoft SQL Server

Pre databázový server MSSQL platí:

Ak doteraz nebolo riešené spúšťanie údržby indexov, treba počítať s ďalším nárastom veľkosti databázy, a to o veľkosť jednej najväčšej tabuľky (údržba typu REBUILD potrebuje voľné miesto, aby znovu zostavila celú tabuľku). Vzniknuté zväčšenie databázy neodporúčame redukovať pomocou funkcie Shrink, pretože môže viesť k zníženiu výkonu vďaka opätovnej fragmentácii a tiež je dobré mať rezervované miesto na prípadné opakované vykonanie akcie REBUILD najväčšej tabuľky databázy.

Treba počítať s tým, že akciu typu REBUILD nemožno spustiť v režime ONLINE na STANDARD edícii SQL servera. Spustenie tejto akcie je opäť nutné naplánovať na mimoprodukčný čas, pretože môže blokovať fungovanie systému až na niekoľko hodín.

V prípade, že sa chystáte odstrániť veľké množstvo záznamov, je lepšie akciu premazávania nastaviť na kratšiu dobu behu a potom priebežne vykonávať údržbu pomocou reorganizácie indexov. Tým možno dosiahnuť nepretržitú prevádzku počas údržby.