Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Kolejna rewolucyjka tutaj, któraż to już?

Temat jest taki:
Nasza grupka analityków pichci raporty - duuużo raportów. W tych raportach jest strasznie dużo zapytań do bazy danych - a mamy bazę poważną - SQL Server. informatycy się burzą, że ciągle zapychamy im łącze do tej bazy tysiącami zapytań detalicznych (hehehe, 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 Excelka?

Ano, wicie-rozumicie, 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 SQLem w tabeli takich SQLów. A ja takich pytań mam, załóżmy, tysiąc - to taki bardzo, bardzo duży raport, rzadko w praktyce spotykany, ale my tu lubimy przeginać.

Więc pytanko się rodzi - jeżeli serwer nie umie, to JAK GO NAUCZYĆ?

Ano, trzeba mu zrobić procedurę, ale jak?
No tu, przyznaję, trochę się musiałem zmóżdżyć, koledzy SQLSowcy nie bardzo mi chcieli pomóc, więc pouczyłem się T-SQLa, czyli Transact-SQLa, czyli takiego SQLa od procedur, nie od odpytywania bazy. Trochę boli, poważnie, ale, gdy cel jest jasny...

No to mamy tablicę z tysiącem SQLków - 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ą procedurkę jednym klikiem i więcej już do niej nie wracam, bo, jak serwer się nauczył, to już umie. Taki bystrzaczek.

2. Uruchamiam ową procedurkę. Przelatuje ona przez wszystkie rekordy zapisanej na serwerze tabeli, odczytuje SQLe, 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. Czad.

Film:
http://afin.net/webcasts/Demo_CreateAndExecSqlsProcExe...

konto usunięte

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

Wojciech Gardziński:
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. Czad.

Film:
http://afin.net/webcasts/Demo_CreateAndExecSqlsProcExe...

kursor nie jest optymalnym rozwiązaniem
równie dobrze mogłeś puścić w pętli w VBA, żadna różnica
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Ha, wiadomo.
Ale, pomimo chyba ze stu prób, nie udało mi się zrobić tego tak:
SELECT sqltext, FUNKCJA(sqltext) AS [Wartość] FROM cośtam

1. Kursor oszczędza czas kontaktu z serwerem, to już coś - duże coś.
2. Oszczędza też zajętość aplikacji zlecającej - proces może się odbyć wręcz bez niej - w nocy, podczas braku zajętości - wiemy o co chodzi - tak, jak np. skanery wirusów.
3. Kursor ma też pewną zaletę. W zapytaniach raportowych wiele zapytań jest z założenia błędnych, np. odwołania do nieistniejącej tabeli. Gdy robi to kursor, występuje błąd jednostkowy i kursor idzie dalej, gdy zapytania są hurtowe, błąd jednostkowy mówi tylko o błędzie grupy, czyli koszt czasu został poniesiony, a dalej trzeba sprawdzać...
Kursor ma wady (gratulki za punktację) ale i zalety.

Bardzo chętnie wypracowałbym wersję bez kursora.

Przemysław R.:
Wojciech Gardziński:
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. Czad.

Film:
http://afin.net/webcasts/Demo_CreateAndExecSqlsProcExe...

kursor nie jest optymalnym rozwiązaniem
równie dobrze mogłeś puścić w pętli w VBA, żadna różnica
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

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

A jakie jest praktyczne zastosowanie 1000 osobnych zapytań z których część z założenia odwołuje się do nieistniejących tabel?
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Zwykły przekrojowy raport finansowy.
Połowy kont nie ma, połowa okresów jest zadana awansem.
Gdy dane są w tabelach miesięcznych, to pierwsze daje zera, ale drugie już błędy, które trzeba obsłużyć. Wiem, że to można robić z jednej tabeli, ale tak jest efektywniej.
Paweł B.:
A jakie jest praktyczne zastosowanie 1000 osobnych zapytań z których część z założenia odwołuje się do nieistniejących tabel?
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

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

Rzeczywiście rewolucyjne podejście do raportowania. Ja też spotykam się z problemem efektywności zapytań w raportach moich klientów, ale rozwiązuję to w zupełnie odmienny sposób.

Może spróbuję następnym razem dodać "połowę" zapytań do nieistniejących obiektów. Tylko czy ta "połowa" to const=50% czyli do zapytań, które mamy należy dodać drugie tyle zapytań do nieistniejących obiektów, czy też ich liczba jest zmienna i od czego zależy?
Czy zapytania do nieistniejącego serwera także zwiększają efektywność?
No i jakiego podniesienia wydajności należy się spodziewać? Bo może nie opłaca się ponosić dodatkowych nakładów pracy nad wprowadzaniem tych zapytań by uzyskać przyspieszenie rzędu 2 razy?
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Paweł B.:
Rzeczywiście rewolucyjne podejście do raportowania. Ja też spotykam się z problemem efektywności zapytań w raportach moich klientów, ale rozwiązuję to w zupełnie odmienny sposób.
OK. Każdy to robi po swojemu, bo... jakoś standardy się nie wypracowali. Raportowanie i jego efektywność, to, po tylu już niby latach doświadczeń informatyki, dziewicze dość pole.

Może spróbuję następnym razem dodać "połowę" zapytań do nieistniejących obiektów. Tylko czy ta "połowa" to const=50%
Zaraz, zaraz. "Połowa" nie wynika z mojego widzimisia, tylko z przyzwyczajeń klientów. Jak księgowy robi bilans, to nigdy nie robi go na jeden okres, tylko, od razu, sru - kopiowanie zapytań w prawo, żeby było na okresów 12. Ja mówię o interfejsie excelowym, bo ja taki stosuję - niczego nie usztywniam, itp. I dlatego oczekiwane prawdopodobieństwo błędnego zapytania to ok 50% - dokładnie (11/2) / 12 = 45,8% (11, bo pierwszy miesiąc zawsze jest)
czyli do zapytań, które mamy należy dodać drugie tyle zapytań do nieistniejących obiektów, czy też ich liczba jest zmienna i od czego zależy?
nic nie należy dodawać, księgowy sam dodaje i trudno mu tego zabronić
Czy zapytania do nieistniejącego serwera także zwiększają efektywność?
Absolutnie nie. zapytania błędne są wielokrotnie wolniejsze.
No i jakiego podniesienia wydajności należy się spodziewać? Bo może nie opłaca się ponosić dodatkowych nakładów pracy nad wprowadzaniem tych zapytań by uzyskać przyspieszenie rzędu 2 razy?
Podniesienie wydajności można uzyskać tylko przez zmianę architektury obliczeń. Np. na taką, jak w tytule wątku, albo na http://afin.net/articles/AfinNet_Article_IdeaOfAfinNet...
Wszystko ma zady i walety.
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

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

Czyli u Ciebie to księgowy pisze selecty - wprowadza je do arkusza? A co dalej z otrzymanymi wynikami, te wartości jednostkowe w postaci nieposortowanej listy jakoś trzeba ułożyć w zgrabny, kolorowy raport.
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Paweł B.:
Czyli u Ciebie to księgowy pisze selecty - wprowadza je do arkusza? A co dalej z otrzymanymi wynikami, te wartości jednostkowe w postaci nieposortowanej listy jakoś trzeba ułożyć w zgrabny, kolorowy raport.
No, oczywiście!
http://afin.net/articles/AfinNet_Article_AFQL_PL.htm
Tu funkcja zamienia prosty język księgowy na skomplikowanego SQLa, albo MDXa, dalej jest to wysyłane do bazy i po otrzymaniu odpowiedzi funkcja zwraca wartość.
I stąd np. te (konieczne) wywołania błędne, bo księgowy od razu paramatryzuję tę funkcję na cały rok lub lat kilka.
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

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

Czyli nie księgowy. Selecty składa funkcja, pewnie napisana w VBA. A funkcja mogłaby przecież sprawdzić, że zapytanie dotyczy okresu przyszłego i bez pytania SQL'a zwrócić null.
Definicje "sw/400???123" też można trzymać na serwerze i przeliczać procedurką.
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Paweł B.:
Czyli nie księgowy. Selecty składa funkcja, pewnie napisana w VBA.
Dokładnie w VB.
A funkcja mogłaby przecież sprawdzić, że zapytanie dotyczy okresu przyszłego i bez pytania SQL'a zwrócić null.
Nie bardzo. Bo raz to jest brak tabeli, drugi raz brak wierszy, trzeci raz brak bazy (plik Excela albo kostka OLAP jest "bazą" w terminologii ADO. A sprawdzanie dziedziny też kosztuje czas.
Definicje "sw/400???123" też można trzymać na serwerze i przeliczać procedurką.
To wtedy nie jest WYGODNIE. A wygoda (przelicania automatycznego w Excelu) rzeczą podstawową jest.
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

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

Wojciech Gardziński:
Paweł B.:
Czyli nie księgowy. Selecty składa funkcja, pewnie napisana w VBA.
Dokładnie w VB.
A funkcja mogłaby przecież sprawdzić, że zapytanie dotyczy okresu przyszłego i bez pytania SQL'a zwrócić null.
Nie bardzo. Bo raz to jest brak tabeli, drugi raz brak wierszy, trzeci raz brak bazy (plik Excela albo kostka OLAP jest "bazą" w terminologii ADO. A sprawdzanie dziedziny też kosztuje czas.
To nie ma znaczenia. Póki mamy marzec to obroty za kwiecień 2012 nie istnieją.
Definicje "sw/400???123" też można trzymać na serwerze i przeliczać procedurką.
To wtedy nie jest WYGODNIE. A wygoda (przelicania automatycznego w Excelu) rzeczą podstawową jest.
Dla użytkownika końcowego jest to przezroczyste, a więc tak samo wygodne. Dla programisty-projektanta dynamiczne sklejanie prostych zapytań SQL jest łatwiejsze po stronie klienta. Dla średnio zaawansowanych zapytań już tak nie jest.
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Paweł B.:
To nie ma znaczenia. Póki mamy marzec to obroty za kwiecień 2012 nie istnieją.
A skąd program wie, że mamy marzec? W księgowości czas jest bardziej względny, niż u Adnokamiejcewa. Ja np. lubię księgowe, bo zawsze są o miesiąc młodsze.
Definicje "sw/400???123" też można trzymać na serwerze i przeliczać procedurką.
To wtedy nie jest WYGODNIE. A wygoda (przelicania automatycznego w Excelu) rzeczą podstawową jest.
Dla użytkownika końcowego jest to przezroczyste, a więc tak samo wygodne. Dla programisty-projektanta dynamiczne sklejanie prostych zapytań SQL jest łatwiejsze po stronie klienta. Dla średnio zaawansowanych zapytań już tak nie jest.
A tego to nie zrozumiałem. Mehr Licht, bitte ;)
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

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

Wojciech Gardziński:
Paweł B.:
To nie ma znaczenia. Póki mamy marzec to obroty za kwiecień 2012 nie istnieją.
A skąd program wie, że mamy marzec? W księgowości czas jest bardziej względny, niż u Adnokamiejcewa. Ja np. lubię księgowe, bo zawsze są o miesiąc młodsze.
Dziś w księgowości muszą być obroty lutego, mogą i zazwyczaj są za marzec. W DWH może nie być, bo np przenoszone są tylko raz, po zamknięciu miesiąca. Ale nie ma opcji, by księgowość była w miesiącu przyszłym względem oficjalnej daty codziennie ogłaszanej przez astrologów z Greenwich.
Definicje "sw/400???123" też można trzymać na serwerze i przeliczać procedurką.
To wtedy nie jest WYGODNIE. A wygoda (przelicania automatycznego w Excelu) rzeczą podstawową jest.
Dla użytkownika końcowego jest to przezroczyste, a więc tak samo wygodne. Dla programisty-projektanta dynamiczne sklejanie prostych zapytań SQL jest łatwiejsze po stronie klienta. Dla średnio zaawansowanych zapytań już tak nie jest.
A tego to nie zrozumiałem. Mehr Licht, bitte ;)
To wyjaśnij w czym zamiana "ow/400?123";"2007";"01" zamienione przez VB na "select sum(sw)..." i wysłane na serwer jest wygodniejsze od "select dbo.afin_costam("ow/400?123",2007,01)"
Jarosław B.

Jarosław B. Członek Zarządu /
Dyrektor Finansowy,
Saferoad CEE Sp. z
...

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

Paweł B.:

To wyjaśnij w czym zamiana "ow/400?123";"2007";"01" zamienione przez VB na "select sum(sw)..." i wysłane na serwer jest wygodniejsze od "select dbo.afin_costam("ow/400?123",2007,01)"

witam

1) "ow/400?123";"2007";"01" (funkcja GETDATA) może być wywoływana przez użytkowników nie znających SQL ani VBA
2) w wyrażeniu zapytania może pojawić się wiele wyrażeń połączonych operatorami np.
"sw/010<010.1-sm/070<070.1"
w zapisie powyżej "<" jest operatorem odejmowania,
więcej: http://afin.net/articles/AfinNet_Article_AFQL_PL.htm
3) funkcjonalność AFIN.NET.PowerCalculation przyspiesza wywoływanie wielu niezależnych zapytań do jednej bazy
więcej: http://www.goldenline.pl/forum/2307428/afin-net-powerc...

To są uwagi z punktu widzenia użytkownika, pewnie Pan Wojtek mógłby dodać coś od siebie jako twórcy programu.
Oczywiście możesz samemu napisać 1), 2) i 3) i sprzedaż swoim klientom.
Jednak chodzi o to, że to już jest, do tego za przystępne pieniądze, sprawnie działa i - co bardzo ważne - jest rozwijane od wielu (bo już kilkunastu) lat.

Pomysł nr 3) jest wg mnie z pewnością warty uznania - korzystam również z funkcji cc.fGetVal w IBM Cognos Controller i z pewnością implementacja rozwiązania podobnego do AFIN.NET.PowerCalculation poprawiłaby komfort pracy w Cognos.
Z tego co wiem, cc.fGetVal w Cognos Controller nie obsługuje również funkcjonalności 2).

pozdrawiam
Jarek
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Paweł B.:
Dziś w księgowości muszą być obroty lutego, mogą i zazwyczaj są za marzec. W DWH może nie być, bo np przenoszone są tylko raz, po zamknięciu miesiąca. Ale nie ma opcji, by księgowość była w miesiącu przyszłym względem oficjalnej daty codziennie ogłaszanej przez astrologów z Greenwich.
A "projekcje", a budżety? A kto to powiedział, że np. nie możemy robić sprawozdań finansowych w okresie 02-05.2009? Zbytnia kontrola nad użytkownikiem prowadzi do polityki, którą uparcie (bo i w wynalazkach '2012) stosuje małomiękki, że konekszyny muszą być (stworzone na zapas) i muszą być otwarte. Ja nie mam konekszynów na zapas, a na pewno nie trzymam ich otwartych, a ślicznie działa.
Definicje "sw/400???123" też można trzymać na serwerze i przeliczać procedurką.
To wtedy nie jest WYGODNIE. A wygoda (przelicania automatycznego w Excelu) rzeczą podstawową jest.
Dla użytkownika końcowego jest to przezroczyste, a więc tak samo wygodne. Dla programisty-projektanta dynamiczne sklejanie prostych zapytań SQL jest łatwiejsze po stronie klienta. Dla średnio zaawansowanych zapytań już tak nie jest.
A tego to nie zrozumiałem. Mehr Licht, bitte ;)
To wyjaśnij w czym zamiana "ow/400?123";"2007";"01" zamienione przez VB na "select sum(sw)..." i wysłane na serwer jest wygodniejsze od "select dbo.afin_costam("ow/400?123",2007,01)"

Ojej, zalet jest mnóstwo:

1. TO FUNKCJA, czyli juzer jakchcegdziechce i parametryzyuje jak chce. Excel mu przelicza, nie jakaś tajna procedura i wynik jest natychmiast

2. dbo.... A kto to powiedział, że te wynalazki mają działać tylko na SQLSie? Największy performans jest np. na Firebirdzie, ale ludzie go nie lubią instalować, więc na Accessie albo na kostkach .cub.

3. W tej funkcji można zawrzeć CAŁOŚĆ zapytania a nie tylko jego jeden człon. Np. rozpisz sobie na SQLka ostatni przykład z artykułu:

„sw/??.701.?.*<??.701.0.*>??.702.?.*<??.702.0.*>??.703.?.*<??.703.0.*>??.704.?.*<??.704.0.*>??.706.?.*<??.706.0.*>??.707.?.*<??.707.9>??.708.?.*<??.708.9.0*>02.708>??.730.?.*<??.730.0.*>??.740<??.740.0>06.740.0.??<06.740.0.00”

Boli?
A u mnie to standarowo standardowy standard.

P.S.
O, dzięki Panie Jarku!Wojciech Gardziński edytował(a) ten post dnia 20.03.12 o godzinie 08:43
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

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

Wojciech Gardziński:
Paweł B.:
Dziś w księgowości muszą być obroty lutego, mogą i zazwyczaj są za marzec. W DWH może nie być, bo np przenoszone są tylko raz, po zamknięciu miesiąca. Ale nie ma opcji, by księgowość była w miesiącu przyszłym względem oficjalnej daty codziennie ogłaszanej przez astrologów z Greenwich.
A "projekcje", a budżety? A kto to powiedział, że np. nie możemy robić sprawozdań finansowych w okresie 02-05.2009? Zbytnia kontrola nad użytkownikiem prowadzi do polityki, którą uparcie (bo i w wynalazkach '2012) stosuje małomiękki, że konekszyny muszą być (stworzone na zapas) i muszą być otwarte. Ja nie mam konekszynów na zapas, a na pewno nie trzymam ich otwartych, a ślicznie działa.
Definicje "sw/400???123" też można trzymać na serwerze i przeliczać procedurką.
To wtedy nie jest WYGODNIE. A wygoda (przelicania automatycznego w Excelu) rzeczą podstawową jest.
Dla użytkownika końcowego jest to przezroczyste, a więc tak samo wygodne. Dla programisty-projektanta dynamiczne sklejanie prostych zapytań SQL jest łatwiejsze po stronie klienta. Dla średnio zaawansowanych zapytań już tak nie jest.
A tego to nie zrozumiałem. Mehr Licht, bitte ;)
To wyjaśnij w czym zamiana "ow/400?123";"2007";"01" zamienione przez VB na "select sum(sw)..." i wysłane na serwer jest wygodniejsze od "select dbo.afin_costam("ow/400?123",2007,01)"

Ojej, zalet jest mnóstwo:

1. TO FUNKCJA, czyli juzer jakchcegdziechce i parametryzyuje jak chce. Excel mu przelicza, nie jakaś tajna procedura i wynik jest natychmiast

2. dbo.... A kto to powiedział, że te wynalazki mają działać tylko na SQLSie? Największy performans jest np. na Firebirdzie, ale ludzie go nie lubią instalować, więc na Accessie albo na kostkach .cub.
Obwieściłeś sukces optymalizacji zapytań na bazie MS-SQL. Na Firebirdzie tego nie uruchomisz.

3. W tej funkcji można zawrzeć CAŁOŚĆ zapytania a nie tylko jego jeden człon. Np. rozpisz sobie na SQLka ostatni przykład z artykułu:

„sw/??.701.?.*<??.701.0.*>??.702.?.*<??.702.0.*>??.703.?.*<??.703.0.*>??.704.?.*<??.704.0.*>??.706.?.*<??.706.0.*>??.707.?.*<??.707.9>??.708.?.*<??.708.9.0*>02.708>??.730.?.*<??.730.0.*>??.740<??.740.0>06.740.0.??<06.740.0.00”
>
Boli?
A u mnie to standarowo standardowy standard.
Nie, nie boli, jak piszę, że przezroczyste dla klienta, to znaczy, że może sobie to samo „sw/??.701.?.*<??.701.0.*>??.702.?.*<??.702.0.*>??.703.?.*<??.703.0.*>??.704.?.*<??.704.0.*>??.706.?.*<??.706.0.*>??.707.?.*<??.707.9>??.708.?.*<??.708.9.0*>02.708>??.730.?.*<??.730.0.*>??.740<??.740.0>06.740.0.??<06.740.0.00” wpisać. Ale to detal.

W demku jest natomiast 1000 zapytań z czego 990 identycznych, wszystko w składni SQL "select min(costam)..." . A jakby to wyglądało z trzema tablicami każda za 1 miesiąc, po 1000 kont w każdej. No i teraz 10 unikalnych zapytań w stylu „sw/??.701.?.*<??.701.0.*>??.702.?.*<??.702.0.*>??.703.?.*<??.703.0.*>??.704.?.*<??.704.0.*>??.706.?.*<??.706.0.*>??.707.?.*<??.707.9>??.708.?.*<??.708.9.0*>02.708>??.730.?.*<??.730.0.*>??.740<??.740.0>06.740.0.??<06.740.0.00”.

>

P.S.
O, dzięki Panie Jarku!
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Paweł B.:
Obwieściłeś sukces optymalizacji zapytań na bazie MS-SQL. Na Firebirdzie tego nie uruchomisz.
To jest przykład jednej z metod zapytań hurtowych, które stosuję. Tego, akurat, fakt, nie robiłem jeszcze na innych bazach, niż na SQLSie. Ale reszta moich tematów tak samo działa (no, nie tak samo - prędkość zależy od bazy, ale to jasne) na dowolnej bazie. Długo robiłem to np. na dbf-ach, jak były jeszcze modne :).
Nie, nie boli, jak piszę, że przezroczyste dla klienta, to znaczy, że może sobie to samo „sw/??.701.?.*<??.701.0.*>??.702.?.*<??.702.0.*>??.703.?.*<??.703.0.*>??.704.?.*<??.704.0.*>??.706.?.*<??.706.0.*>??.707.?.*<??.707.9>??.708.?.*<??.708.9.0*>02.708>??.730.?.*<??.730.0.*>??.740<??.740.0>06.740.0.??<06.740.0.00”
>
wpisać. Ale to detal.

Nie, no ja rozumiem, że każde zapytanie można sobie "wpisać". Tylko nie tak łatwo. Ale łatwo to rzecz gustu, nie mam zamiaru akurat tutaj przekonywać, że łatwiej, czy coś tam. U mnie - tak.

W demku jest natomiast 1000 zapytań z czego 990 identycznych,
A to, akurat, nie stanowi. Ja wiem, kiedy takie same zapytania różnicują, a kiedy nie. Tu akurat nie różnicują, więc dałem takie same. Bo tu każde z nich składane jest niezależnie.
wszystko w składni SQL "select min(costam)..." . A jakby to wyglądało z trzema tablicami każda za 1 miesiąc, po 1000 kont w każdej.
No, nie ma problemu. Czy jedna tablica, czy wiele, to, w tej metodzie, nie robi większej różnicy.
No i teraz 10 unikalnych zapytań w stylu „sw/??.701.?.*<??.701.0.*>??.702.?.*<??.702.0.*>??.703.?.*<??.703.0.*>??.704.?.*<??.704.0.*>??.706.?.*<??.706.0.*>??.707.?.*<??.707.9>??.708.?.*<??.708.9.0*>02.708>??.730.?.*<??.730.0.*>??.740<??.740.0>06.740.0.??<06.740.0.00”.
To, u mnie, jest JEDNYM zapytaniem. I takich zapytań średnio po 200 sztuk leci z jednego arkusza-raportu.Wojciech Gardziński edytował(a) ten post dnia 20.03.12 o godzinie 20:42
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

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

Po prostu zrób bardziej wiarygodny test.
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

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

Paweł B.:
Po prostu zrób bardziej wiarygodny test.
A proszę bardzo. Dawaj parametry :)



Wyślij zaproszenie do