Skupiny záznamov verzus filtrovanie či iné obmedzenie číselníkov

Medzi použitím skupín záznamov a filtrovaním číselníka (alebo iným prípadným obmedzením zobrazených záznamov v číselníku) je ÚPLNE zásadný principiálny rozdiel:

  • Filtrovanie resp. obmedzenie zadané v obmedzovacom paneli v číselníkoch - Číselník sa z databázy do pamäte načíta celý a zadaním filtra sa len vizuálne zafiltrujú záznamy, ktoré sa aktuálne užívateľovi majú zobraziť (v pamäti sú ale všetky).
  • Skupiny záznamov - Číselník sa z databázy do pamäte nenačíta celý a zadaním skupiny sa načíta iba jeho časť.

    Pozor! Použitie skupín v nevhodnom prípade môže byť však kontraproduktívne a môže naopak spôsobiť spomalenie odozvy systému. Viď ďalej.

Skupiny záznamov by sa nemali používať v zmysle filtrovania číselníka. Význam skupín záznamov spočíva v tom, umožniť s rozumnou odozvou systému pracovať aj v číselníku s veľmi rozsiahlymi dátami, z ktorých väčšinu daný užívateľ používa málo.

Typicky: máme niekoľko stoviek tisíc skladových kariet naimportovaných od dodávateľov, ale reálne predávame len päťtisíc položiek. Väčšina pracovníkov tak vlastne pracuje iba s vybranou skupinou (len s časťou číselníka) a odozva je rýchla. Ten, kto pracuje s cenníkmi, však potrebuje pracovať so všetkými kartami, pre neho bude odozva systému číselníka s mnohými dátami výrazne pomalšia.

Filtrovaním i skupinovaním dosiahneme na prvý pohľad rovnaký výsledok - obmedzenie dát. Pri rozhodovaní, ktorú funkcionalitu použiť, je však potrebné starostlivo zvážiť okolnosti, keďže v niektorých prípadoch môže byť použitie skupiny nevhodné a prácu spomalí namiesto toho, aby ju urýchlilo. Je potrebné zvážiť nasledujúce:

  • Prepnutie skupiny je na veľkých dátach výrazne pomalšie ako uplatnenie filtra. V prípade filtra sa vykoná dopyt, ktorým sa vráti úzky zoznam ID-čiek, podľa ktorých sa obmedzí zobrazenie už "nakešovaného" číselníka. V prípade zmeny skupiny záznamov sa "nakešované dáta zahodia" a vráti sa široký zoznam so všetkými kľúčmi (tzn. čas na prenos po sieti), ktorý sa ešte navyše musí na klientovi roztriediť (čas potrebný na triedenie) a to podľa všetkých položiek. Preto, keď predpokladáte časté prepínanie medzi skupinami, nakoľko potrebujete pracovať s viacerými rôznymi, mali by ste použiť skôr filtrovanie.
  • Práca s číselníkom s nastavenou skupinou záznamov je síce rýchlejšia, pretože obsahuje menej dát, no akékoľvek "otrenie sa" o záznam, ktorý v číselníku nie je zahrnutý do aktuálnej skupiny, spôsobí značné spomalenie.
    • Napr. ak máme viacriadkový doklad alebo cenník, kde väčšina skladových kariet nie je v aktuálnej skupine, odozva systému sa značne spomalí. Systém totiž normálne množstvo zobrazovaných údajov získava z "nakešovaného" číselníka, pokiaľ tam však záznam nenájde, musí si preň "siahnuť" do databázy. Tieto dáta sú ale len dočasné (nie sú uložené v číselníku) a bezprostredne po použití sa opäť "zahadzujú".

      Tento režim práce je určený pre výnimočné prípady, napr. prípad skrytého záznamu alebo záznamu, ktorý obstaral iný užívateľ, ale my ešte nemáme číselník občerstvený. Pre veľké objemy dát rozhodne vhodný nie je.

Z vyššie uvedeného plynie, že Skupiny záznamov sú typicky vhodné na "odfiltrovanie" nepoužívaných záznamov. Na príležitostné filtrovanie podľa aktuálnej potreby voľte radšej bežné Filtrovanie!!!

K zvolenej skupine záznamov sa ďalšie obmedzenie resp. filtrovanie uplatňuje aditívne. Môže ísť o obmedzenie podľa prístupových práv, filtrovanie, prípadne o obmedzenie zadané v obmedzovacom paneli v číselníkoch, ak je nejaký v danom číselníku k dispozícii (opäť zdôrazňujeme, že tu ide len o vizuálne obmedzenie záznamov, zobrazovaných v danom momente užívateľovi).

Príklad1: Majme v adresári firiem nadefinované 2 skupiny záznamov: Skupinu "Aktívni", ktorá zahŕňa aktívnych obchodných partnerov, nech ich je napr. 5000, a skupinu "Neaktívni", nech ich je 6000. (Napr. na základe nejakej definovateľnej položky, ktorá je nastavená obchodným oddelením). Po zvolení skupiny "Aktívni" sa z databázy do pamäte načíta len 5000 záznamov (nech je 150 z nich výrobcami hračiek). Ak v danom momente zvolíme funkciu filtrovania a zafiltrujeme len podľa firiem - výrobcov hračiek (opäť napr. podľa nejakej definovateľnej položky v adresári, podľa kľúčov v adresári a pod.), tak uvidíme len 150 firiem (v pamäti ich ale máme načítaných všetkých 5000).

Príklad2: Majme v skladových kartách nadefinované 2 skupiny záznamov: Skupinu "Hračky", ktorá zahŕňa položky sortimentu hračiek, nech ich je napr. 7000, a skupinu "Ostatné", nech ich je 5000. (Napr. na základe skladového menu). Po zvolení skupiny "Hračky" sa z databázy do pamäte načíta 7000 záznamov (nech 1500 z nich je vlastných výrobkov). Ak v danom momente zvolíme v paneli Obmedzenie "Len výrobky", tak uvidíme len 1500 skl. kariet (v pamäti ich ale máme načítaných všetkých 7000).