#pracbaza #sql #programowanie Mirki mam problem. Mam dosyć długie zapytanie sql na ponad 400 linijek, składający się z paru withów na początku. Jak się zawężę w wherze na jeden identyfikator to wszystko jest spoko. Ale jak kompiluje dla całości (ponad 100 tys identyfikatorów), bez żadnych zmian w kodzie, to dla tego jednego identyfikatora mi gubi 2 atrybuty. No jak?!
@wicherq jak sprawdzam kod czesciami to zawsze te dwa atrybuty są, i jest ok. Problem jets na całości ( ͡°ʖ̯͡°) @buchowo łączenia są po jednym data type, ale np. długość tekstu w kolumnie (identyfikatora po którym łączę) waha sie miedzy tabelami. Ale użyłam Trima i nic to nie dało. Próbowałam też puszczać zapytanie bez hintów, bo używałam paralela ósemke, myślałam że moze się przez
@cohontes powiedzmy, że to identyfikator produktu, więc np "1000" odpowiada produktowi A, "1001" odpowiada produktowi B i tak dalej, aż do produktów nr pierdyliard. No i między tabelami łączę po tych unikalnych identyfikatorach, zawsze mam jeden wiersz per identyfikator
@MechanicznaPitaja: w komercyjnych projektach nie używa się w ogóle SQL do wyszukiwania danych, te rzeczy które chcesz by były wyszukiwalne z bazy danych SQL - wybierasz je i wrzucasz do elastica (silnik wyszukań) i tworzysz przeszukiwalny indeks
Zapytania wyszukujące dane z elasticsearcha są kilkadziesiąt razy szybsze niż wyszukiwanie w SQL ze względu na architekturę elasticsearcha (odwrócone indeksy, rozproszenie, skalowanie, równoległość itd)
@MechanicznaPitaja: spotkałem się w przeszłości z podobnym przypadkiem, ale ciężko wróżyć z fusów. Rozbij zapytanie na mniejsze podzapytania i zamiast WITH np użyć tabel tymczasowych by znaleźć w którym miejscu „znikają” dane.
@MechanicznaPitaja: a wracając do pytania: na pewno na joinach ci znikają dane, złe użycie LEFT/INNER/RIGHT joinów np jak masz innej joina i gdzieś jest null to ci zniknie
@nad__czlowiek ale poczekaj, jakby mi dane znikaly na łączeniach, to przy puszczeniu całego zapytania z ograniczeniem na ten jeden identyfikator też nie miałabym danych, a mam. Nie mam dla niego danych, jak puszczam zapytanie dla całego zbioru i potem go wyszukuje - zupełnie nic w kodzie nie zmieniam, tylko zakomentowuje linkijke z wyborem identyfikatora
fajen bo udało się naprawić lapka, laptop 13 lat, wiatraczek głośnio chodził, chrzęścił, zamówiłem nowy, zamontowałem, wymieniłem też pastę na procku na nową i śmiga cichutko, temperaturki fajne, umiem coś
Mirki mam problem. Mam dosyć długie zapytanie sql na ponad 400 linijek, składający się z paru withów na początku.
Jak się zawężę w wherze na jeden identyfikator to wszystko jest spoko. Ale jak kompiluje dla całości (ponad 100 tys identyfikatorów), bez żadnych zmian w kodzie, to dla tego jednego identyfikatora mi gubi 2 atrybuty. No jak?!
@buchowo łączenia są po jednym data type, ale np. długość tekstu w kolumnie (identyfikatora po którym łączę) waha sie miedzy tabelami. Ale użyłam Trima i nic to nie dało.
Próbowałam też puszczać zapytanie bez hintów, bo używałam paralela ósemke, myślałam że moze się przez
Zapytania wyszukujące dane z elasticsearcha są kilkadziesiąt razy szybsze niż wyszukiwanie w SQL ze względu na architekturę elasticsearcha (odwrócone indeksy, rozproszenie, skalowanie, równoległość itd)
@nad__czlowiek: ale każdy rdbms to już przecież też ma. I w przetwarzaniu danych nie chodzi tylko o wyszukanie sobie szybko po tekście.
No i w komercyjnych projektach używa się SQLa...