AFIN.NET.ServerCalculation jest gotowe.
Ponieważ prędkość przeliczeń, a do tego sprowadza się istota
tej nowej opcji, trudno jest pokazać na filmie, skupię się na
krótkim objaśnieniu tematu.
Załóżmy, że przychodzimy rano do pracy i chcemy zrobić raport -
skomplikowany, załóżmy 1.000 funkcji do bazy danych. Mamy wybór:
1. tworzymy go, wypełniając funkcjami i przeliczając za każdą
poprawką w arkuszu (przeliczanie automatyczne) i czekając za
każdym razem po kilkadziesiąt sekund na przeliczenie 1.000 funkcji
2. Przełączamy się na przeliczanie ręczne - wpisujemy funkcje,
ale przeliczamy tylko co jakiś czas, bo to chwilę trwa
3. Włączamy "przeliczanie hurtowe" wtedy czas jest o wiele
krótszy, ale też zajmuje kilkanaście sekund (1.000 funkcji to
1.000 odwołań do zewnętrznej bazy danych, tu nawet 10-krotnie
przyspieszone musi chwilę trwać)
A my chcemy przeliczać szybko! I to po każdym dodaniu nowej
funkcji, bo chcemy sprawdzać jej wartość przy nowych parametrach.
(Użytkownicy Excela/AFINA zawsze tak robią, jakby nie wierzyli,
że przeliczanie całego arkusza/skoroszytu zrobi im za chwilę to samo... ale cóż -
przyzwyczajenie naszą drugą naturą, więc niech tak zostanie!)
I co? Czy musimy rezygnować z naszych przyzwyczajeń, dotyczących
pracy w Excelu, gdzie ten natychmiast "reaguje" na zmiany w arkuszu?
Otóż, nie, nie musimy czekać - włączamy
AFIN.NET.ServerCalculation.
Wyjaśnienie - dla kogo to:
Opcja ta niestety, a może stety, nie jest dostępna dla każdego
użytkownika AFINA. Wymaga, żeby dane przechowywane były na
serwerze bazodanowym, np. SQL Server, może być w wersji Express
(darmowy) - dalej będę posługiwał się skrótem "SQLS".
Postawienie takiego serwera, tzn. jego instalacja na końcówce, to,
w zasadzie, chwila - jest to więc opcja do rozważenia nawet dla
pojedynczych użytkowników. Ale klienci "grupowi", tj. działy
analiz, w których wszyscy analitycy korzystają z AFINA, są tu
użytkownikiem modelowym. To dla nich!
No to przychodzimy do tej pracy i zaczynamy tworzyć raport -
wpisujemy jakieś etykiety wierszy, wpisujemy kilka funkcji -
powiedzmy 12 (przez przeciągnięcie w prawo formuły
sparametryzowanej miesiącem - normalna praca w AFINIE)
AFIN liczy owe 12 funkcji. 12 - to niewiele, więc bardzo szybko -
nie zauważamy, że liczy detalicznie. Super. Wpisujemy kolejne...
ale, zanim wpiszemy te kolejne, objaśnię, co się dzieje w tle, bo
użytkownik tego NIE WIDZI, a tam dopiero jest ciekawie.
Ano, w tle, dzieje się dużo. Przy przeliczeniu tych 12 funkcji,
AFIN nie tylko je przeliczył - zapisał w, niewidocznej dla
użytkownika, tabeli zapytania, które te funkcje wykonały. Funkcje
zwróciły wartości, więc użytkownik jest szczęśliwy, ale zapytania i
tak się zapisały. Po co?
Zapisały się po to, że w tle, co jakiś czas (ustawiany przez
owego użytkownika - co 5 minut, co godzinę, co kilka godzin - jak
chcemy) uruchamia się niezależna od Excela procedura-program,
który robi następujące czynności:
1. Zasysa ową tablicę zapytań z AFINA do tabeli SQLS, wpisując
je do kolumny SqlText
2. Uruchamia "Job" SQLS, który może być standardowym "Job-em"
onego, ale, ponieważ SQLS Express nie obsługuje "Job-ów", jest to
specjalna procedura, tworzona administracyjnie jeden raz przy
instalacji tego rozwiązania. Procedura ta uruchamia się ,
odczytuje komendy SqlText, oblicza wartości tych zapytań i tworzy
(uzupełnia) kolumnę Values.
3.Gotowa tabela jest, z kolei, znów zdalnie i znów
niepostrzeżenie dla użytkownika, przekazywana do pliku Accessa,
który jest w folderze AFINA (dalej zwanego bazą podręczną).
Po co? Bo tu AFIN ma blisko, czytaj: szybko ciągnie dane.
Koniec działania owej procedury.
Ale użytkownik wpisuje funkcje dalej. Wpisuje kolejne 12 funkcji i
chce je przeliczyć.
Więc arkusz przelicza...
Pierwsze 12 funkcji tłumaczy na zapytania i sprawdza, czy ma je w
bazie podręcznej - ma! Więc bierze je stamtąd - bardzo szybko
Kolejne 12 funkcji tłumaczy na zapytania - nie znajduje ich w owej
bazie - więc przelicza normalnie - detalicznie. Pierwsze 12 -
momentalnie (bo z bazy podręcznej), kolejne 12 normalnie, trochę dłużej, ale i tak
szybko, bo tylko 12. I tak dalej, i dalej, i dalej.
Sumaryczny czas całkowitego przeliczenia raportu (koszt czasu), nie dość, że jest
ponoszony tylko raz, a nie wielokrotnie (jak byłoby przy normalnym
przeliczaniu automatycznym), to jeszcze jest rozłożony na setki naszych operacji
i nie zauważamy tego.
Tworząc raport, zawsze tworzymy go krok po kroku. Nie zauważamy,
jak AFIN, niepostrzeżenie dla nas, UCZY SIĘ NASZYCH POTRZEB!!!
I, jak już stworzymy raport, pomimo, że wszystkie zapytania są
strasznie skomplikowane i tak dalej, one wszystkie są już w bazie
liczonej "pod spodem" - raport przelicza się momentalnie, czyli
średnio 3 razy szybciej.
Fajne?
Na pewno użyteczne. Zapraszam do używania. Usługa instalacji -
dla pierwszego Klienta GRATIS!
wtorek, 10 kwietnia 2012
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz