Archív - ladenie výkonu
Táto sekcia obsahuje tipy na ladenie výkonu archívu.
- Systémová štruktúra SV._System_ArchivPerformance je určená na monitorovanie výkonu archívu - viď popis jednotlivých stĺpcov. Odporúčame archiváciu stĺpcov PendingDbRequest, PendingStatReqest, PerformedDbRequest a PerformedCalcRequest (s vhodným filtrom) a prípadne štatistík (napr. 1-minútový a hodinový sumár).
- Tell príkaz STATISTICS umožňuje zistenie množstva hodnôt, ktoré boli pre jednotlivé archívne objekty uložené do databázy za posledných N hodín. Výstupom príkazu je textový súbor, ktorý je možné následne importovať napr. do Excelu a zoradiť podľa posledného stĺpca. Následne je možné optimalizovať archívy s najväčším počtom hodnôt (nastavenie filtrov, prípadne obmedzenie počtu výpočtov pre vypočítané archívy)
- Príkaz STATISTICS nezachytí, pokiaľ bola jedna hodnota menená viackrát (napríklad vkladanie hodnôt zo skriptu). Preto existujú ladiace kategórie DBG.ARCHIV.MANUAL_INSERT_VALUE a DBG.ARCHIV.MANUAL_UPDATE_VALUE nastaviteľné pomocou procesu D2000 System Console v okne Debug info. Tieto kategórie zapínajú zobrazovanie výpisov o akciách INSERTARCHARR resp. UPDATEARCHVAL (a o ručnej modifikácii hodnôt z HI). Zobrazené sú ID archívnych objektov a vkladané hodnoty.
- Ďalším problémom môže byť, že hodnoty opakovane vkladané zo skriptu spôsobia veľké množstvo následných prepočtov. V takom prípade je vhodné pred vkladaním zo skriptu najskôr vykonať čítanie (GETARCHVAL) a otestovať, či hodnota už v archíve nie je uložená. K dispozícii je aj ladiaca kategória DBG.ARCHIV.MANUAL_READ_BEFORE_IU, ktorá zapína túto funkčnosť priamo v obsluhe akcií INSERTARCHARR resp. UPDATEARCHVAL a ladiaca kategória DBG.ARCHIV.MANUAL_READ_BEFORE_IU.DBG, ktorá aktivuje výpisy, keď sa zistí, že vkladaná hodnota sa už v archíve nachádza. Pomocou týchto ladiacich výpisov je možné zistiť, pre ktoré objekty vkladané zo skriptu má zmysel implementovať čítanie pred zápisom.
- Výkon archívu na platforme Linux (najmä pre vypočítané a štatistické archívy) je možné výrazne zvýšiť nasadením optimalizovanej unixODBC knižnice libodbc.so.2.0.0. Navyše odporúčame nasadenie patchov archívu z októbra 2022 a novších, ktoré majú implementované recyklovanie ODBC kurzorov, ktoré rieši pomalosti knižnice unixODBC spôsobené použitím dátových štruktúr (lineárne zoznamy) nevhodných pre aplikácie s niekoľkými desiatkami tisíc predkompilovaných kurzorov.
- Na všetkých platformách odporúčame použiť pre potreby archivácie databázu PostgreSQL a venovať pozornosť nastaveniu jej parametrov.
- Zrýchlenie archívu pri čítaní (a teda aj pri prepočtoch štatistických a výpočítaných archívov) je možné dosiahnúť zapnutím izochrónnej cache.
- Zrýchlenie archívu pri zápise je možné dosiahnúť zvýšením počtu zapisovacích taskov - parameter WriteThreadsCount. Táto úprava vyžaduje rozšírenie licencie o High Performance Archiv.
- Zrýchlenie archívu pri čítaní je možné dosiahnúť zvýšením počtu čítacích taskov - parameter ReadThreadsCount. Táto úprava vyžaduje rozšírenie licencie o High Performance Archiv.
Archív - debugovanie
Táto sekcia obsahuje tipy na ladenie jednotlivých archívnych objektov.
- Tell príkaz SHOW_DYN_INFO je určený na jednorazové zobrazenie informácií o konkrétnom archívnom objekte.
- Tell príkaz DI ON je určený na aktiváciu ladiacich informácii o konkrétnom archívnom objekte. Budú sa zobrazovať informácie o vkladaní hodnôt, v prípade vypočítaných a štatistických archívov o prepočtoch hodnôt a prípadne intervalov. Aktivácia ladiacej kategórie DBG.ARCHIV.DATA pre takéto archívne objekty zapne zobrazovanie vypočítaných hodnôt ako aj hodnôt zdrojových objektov idúcich do výpočtu.
- Ladiaca kategória DBG.ARCHIV.GET_VALUE_FOR_TIME slúži na zapnutie výpisov pri čítaní hodnoty pre konkrétny čas z databázy.