piątek, 16 marca 2012

Czy można nadać serwerowi robotę według naszego przepisu?

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

Brak komentarzy:

Prześlij komentarz