Aktywne Wpisy
Marek_Tempe +8
Od zawsze interesuję mnie sfera snów, ich dynamika, poziom dziwności, odniesienia do dnia codziennego, kultury i symboliki oraz prekognicja. Może ktoś zechciałby się podzielić swoimi snami? Być może część z nich uda mi się zinterpretować na tyle na ile pozwoli moja wiedza oraz znajomość danego użytkownika. Rozumiem, że dzielenie się pewnymi treściami na forum może być trudne, więc zapraszam również na priv, ale bez przesady, pełna dyskrecja i ludzkie podejście. Proszę o
Kupić auto czy się wstrzymać?
Przeciw:
1. Mieszkam w mieście i na co dzień samochód jest zbędny:
a) do biura jeżdżę rowerem
b) sklepy mam do 5 minut pieszo
c) prawie wszędzie da się dojechać MPK
d) od niedawna alternatywą dla MPK są hulajnogi
e) nie muszę szukać miejsca do zaparkowania
2. Utrzymanie samochodu generuje koszty.
3. Obecnie mieszkam w PRL-u i auto musiałoby stać na zewnątrz, a okoliczne parkingi są zawalone.
Przeciw:
1. Mieszkam w mieście i na co dzień samochód jest zbędny:
a) do biura jeżdżę rowerem
b) sklepy mam do 5 minut pieszo
c) prawie wszędzie da się dojechać MPK
d) od niedawna alternatywą dla MPK są hulajnogi
e) nie muszę szukać miejsca do zaparkowania
2. Utrzymanie samochodu generuje koszty.
3. Obecnie mieszkam w PRL-u i auto musiałoby stać na zewnątrz, a okoliczne parkingi są zawalone.
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Mogę zrobić procedurę, że po otrzymaniu ID rodzica, query mi zwróci tabelkę z jedną kolumną varchar(45) i tyle ale mam wtedy dużo zapytań bo najpierw biorę wszystkich rodziców, a później dla każdego z nich pytam o tę procedurę... dlatego nie wiem czy to jest dobre rozwiązanie.
Z drugiej strony jak dam JOIN to dostanę wieeelką tabelę z danymi rodzica powtarzanymi np. 100 razy... oczywiście sobie tam w programie wywalę co niepotrzebne ale nie wiem co lepiej... A czy B? chyba, że jest jeszcze jakaś trzecia opcja... :P
U mnie w pracy mamy
temp table
, do którego wstawiamy dane rodziców i potem wysyłamy do klienta najpierw wszystkie dane rodziców, a potem joina "id rodzica" z danymi dziecka, a klient robi joina na danych korzystając z sortowania kubełkowego.Sprawdza się przy przepustowości połączenia baza-klient rzędu 50kB/s (niska jakość rozwiązania oferowana przez Microsoft Azure).
@Taczi: z distinct mam jedną listę, a potrzebuję osobnej listy dla każdego rekordu.
@Ginden: MySQL, community.
Może źle to opisałem... lepiej na życiowym przykładzie. Screen jest bardzo uproszczony ale nieważne. Czy lepiej:
1)
SELECT Meetings.name, Meetings.date, LEFT(Topics.name, 45) FROM Meetings LEFT JOIN Topics ON Meetings.id = Topics.Meetings_id;
2)
SELECT * FROM Meetings;
i dla każdego otrzymanegoJeżeli jakiś agregat i idziesz w stronę hurtowni danych, to opcja nr 1, hash-join'y, parallelism etc.
Jeżeli chcesz z takimi danymi coś w międzyczasie zrobić, to pozostaje tylko opcja nr 2.
Jeżeli ma to być system OLTP (zwykły, operacyjny), to opcja nr 1 i upewnienie się, że indeksy są wszędzie tam, gdzie trzeba.
CREATE TABLE #tempmeetings (idMeetings INT, name VARCHAR(45), date DATE);
INSERT INTO #tempmeetings SELECT idMeetings, name, date FROM Meetings;
SELECT * FROM #tempmeetings;
SELECT * FROM Topics WHERE Meetings_id IN (SELECT idMeetings FROM #tempmeetings);
Można zmienić tu kilka rzeczy, np. próbować użyć JOIN zamiast WHERE lub EXISTS zamiast IN, ale to już zależy od konkretnego przypadku.
Z drugiej strony, osobne pytanie dla każdego rekordu Meetings spowolni cały proces
Wszystkie joiny zawsze zwrócą Ci dużo danych.