Kolejna rewolucja tutaj.
Temat jest taki:
Nasza grupka analityków robi raporty - dużo raportów. W tych
raportach jest strasznie dużo zapytań do bazy danych - a mamy
bazę poważną - SQL Server. Informatycy się złoszczą, że ciągle
zapychamy im łącze do tej bazy tysiącami zapytań detalicznych
(Zakładam, że to już umiemy).
Więc, jak zrobić, żebyśmy mieli możliwość tworzenia DOWOLNYCH
zapytań detalicznych, przesłali je jakoś zgrabnie na serwer,
potem coś uruchomili, żeby serwer nam to policzył (on ma do
danych blisko, bo są one na tym samym serwerze, tylko w innej bazie
danych), a potem ściągnęli GOTOWE WYNIKI, oczywiście do Excela?
Uparłem się żeby to zrobić. Ale serwer NIE
DYSPONUJE funkcjonalnością odpowiadania na MOJE pytania. Potrafi
dużo rzeczy, ale nie potrafi mi odpowiedzieć na pytanie zadane
w SQL w tabeli takich SQL. A ja takich pytań mam, załóżmy,
tysiąc - to taki bardzo, bardzo duży raport, rzadko w praktyce
spotykany, ale my tu lubimy przesadzać.
Więc mam pytanie - jeżeli serwer nie umie, to JAK GO
NAUCZYĆ?
Trzeba mu zrobić procedurę, ale jak?
Mamy tablicę z tysiącem zapytań SQL - wszystkie detaliczne,
wszystkie tak napisane, żeby zwracały tylko jedną wartość.
Czyli totalny DETAL, jak to w naszych raportach. Gdzie tabela
przestawna nie daje rady, tam musi być detal.
1. Tworzę więc taką procedurę jednym kliknięciem i więcej już do
niej nie wracam, bo, jak serwer się nauczył, to już umie.
2. Uruchamiam ową procedurę. Przelatuje ona przez wszystkie
rekordy zapisanej na serwerze tabeli, odczytuje zapytania SQL, czyli moje
zapytania detaliczne, oblicza wartości i wpisuje je w pole
wartości, obok owych zapytań.
Potem tę tabelkę ściągam do Excela.
Razem wszystko - 15 sekund / 1000 zapytań DETALICZNYCH.
Ilość kontaktów z serwerem można policzyć na palcach jednej
ręki, więc IT śpi spokojnie.
A my mamy TO, CO CHCEMY, a nie to, co serwer nam łaskawie oferuje.
Film:
http://afin.net/webcasts/Demo_CreateAndExecSqlsProcExecutingRetailQueries.swf
piątek, 16 marca 2012
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz