Temat: WYNALAZKI
Szanowny!
Pozwoli Pan że zacznę niestandardowo..
Gratuluję wiedzy! Dawno sobie z nikim tak nie pogadałem o meritum. Jestem pod wrażeniem.
Zgadzam się chyba ze wszystkim, co Pan napisał.
Ale, ponieważ sobie tak dyskutujemy, wyjaśnię, jak (jednak) sobie radzę z problemami, o których Pan napisał - bo te problemy są rzeczywiste i nieźle je Pan wyszukał, nawet z filmiku.
Ad grupowania:
Ma Pan rację, robienie takich zapytań na niepogrupowanych danych, jest dalekie od efektywności. Więc ...
* Po 1.: W rzeczywistych zapytaniach (nie filmikowych) oczywiście dane grupuję. Ale, jak Pan widzi, Query to też załatwia - SUM(Wart_Zl), GROUP BY itp. (prościutko: klik na ikonce 'suma')
* Po 2.: SQL jako jedno zapytanie potrafi być baaaardzo skomplikowane - jak Pan to trafnie ujął - "fuj" (Będę korzystał z tego cytatu, jak Pan pozwoli?). Więc robimy tabele pośrednie, czyli kolejne stopnie przetwarzania. Wiem, że chwilę dłużej trwa, ale można wyklikać 1. zapytanie, potem drugie, aż osiągnie się efekt. Zaletą tego podejścia jest banalne wręcz "wyklikiwanie" a nie babranie się w fuj-SQLu. ;)
* Po 3,: Stosujemy jeszcze inne sposoby, z których chyba najciekawszy, to wrzucenie wszystkiego do kostki OLAPowej na samym końcu (Przykład:
http://afin.net/webcasts/Demo_StandardBudgetCube.swf Ideolo:
http://afin.net/articles/AfinNet_Article_AFIN.NET.IS_P... (Wyszukać tekst 'OQY, żeby za dużo nie czytać :) )
Ad. Pivot cache'y - Wiem, że tak się robi, ale problem odświeżania, niestety, POZOSTAJE(!).
Ad. Prędkości:
Na filmiku, to akurat prędkość nie jest rewelacyjna, bo, jak Pan słusznie zauważył, zapytanie nie jest efektywne. Kto by tam sumował dane z widoku z 5-ciu tabel? Filmik to przykład, że można tak zrobić.
I (tu chyba trzeba jakoś to wyróżnić, czy tez podkreślić, to
PODKREŚLAM), dochodzimy rzeczywiście do sedna. Mamy pewien patent na szybkie zapytania z dowolnym grupowaniem, LIKE-ami itp., a mianowicie tzw. "AFQL" (dotyczy stricte zastosowań ksiegowych):
http://afin.net/articles/AfinNet_Article_AFQL_PL.htm
Przykładzik:
Księgowi stosują często takie zapytania: sw/010-sm/070 (to w AFQL-u) Oznacza to po informatycznemu: "Posumuj miarę (pole) 'sw' (saldo winien) konta dla filtru '070', a potem odejmij od tego sumę miary 'sm' (saldo ma) dla innego filtu: '070'."
Dla księgowego to po prostu "majątek trwały netto", dla informatyka - porażka.
Tabela - wysiada, funkcje Excela również, dane, dla utrudnienia - w pliku zewnętrznym. A tu działa:
http://afin.net/webcasts/Demo_FinStatmnt4.htm
http://afin.net/webcasts/Demo_FinStatmnt10.htm
Akurat tego przypadku nie ma na filmiku, więc musi mi Pan uwierzyć na słowo, albo... po prostu wypróbować... demko, klik, klik - jak na filmiku. I prędkość, o której wspominałem, dotyczy właśnie takich zapytań dla cubów ok. 1-Megabajtowych (Firma mniej więcej 10.000 kont księgowych, o długości pola 15 znaków. Robi wrażenie, no nie?)
A jeszcze, żeby już temat s(wy)kończyć, to dodam, że to działa również w zapytaniach SIECIOWYCH i to w architekturze klient serwer, czyli szybciutko. Też mamy na to patent.
Ale o tym w następnym odcinku ;)
Jeszcze raz, jak na wstępie.