Wpis z mikrobloga

#programowanie #bazydanych #webdev #csharp

Stoimy z chłopakami przed pewnym dylematem i brakuje nam wiedzy aby być w stanie go jakoś rozstrzygnąć. Obecnie sprawa wygląda tak, że jest sobie baza MSSQL która ma od pyty procedur składowanych w których to dzieje się cała magia. Danych jest bardzo dużo i przychodzą non stop, backend jest szczątkowy - właściwie tylko przewala gotowce z bazy do frontu. Mówimy o potencjalnie setkach gigabajtów danych, które to mogą być niekiedy pobierane w ilości wielu gb na raz celem zrobienia np. agregacji do wykresów. Obecnie robi to baza w wewnętrznej procce i backend dostaje tylko mały zagregowany już odpowiednio pakiet danych, więc działa to jako tako.

No ale procedury składowane śmierdzą, bo uwiązują jajca do konkretnego silnika baz danych a w dzisiejszych czasach można się zastanawiać czy baza na pewno szybciej przeliczy. NoSQL nie ma procek składowanych, jest dosyć szybkie i masz podejście "code-first" w gratisie bez żadnych dziwnych tańców, aczkolwiek sam model danych to jeden wielki burdel i w pewnym momencie jak to spuchnie, to może się zrobić chaos nad którym normalnie panowałyby relacje.

Macie jakieś doświadczenia z tym związane aby mieć porównanie?

Co byś wybrał?

  • NoSQL + agregowanie w backendzie 19.0% (8)
  • SQL (db-first) + agregowanie w backendzie 61.9% (26)
  • SQL (db-first) + agregowanie w prockach 19.0% (8)

Oddanych głosów: 42

  • 43
  • Odpowiedz
@Hauleth: ale to nie ma żadnego znaczenia. Problematyką jest tutaj samo nazewnictwo które wprowadza niejednoznaczność. Wygodniej i prościej - nie koniecznie fachowo - jest nazywać tabele tabelami a wiązania pomiędzy nimi relacjami. Wtedy każdy nawet mniej techniczny rozumie o co chodzi. Inaczej musisz każdego prostować i robi się bardzo duża komplikacja co w przypadku rozmów z osobami nietechnicznymi (tak, wtedy też czasami trzeba wspomnieć coś o bazach) masz komunikacyjną ścianę.
  • Odpowiedz
Jeżeli tak jak piszesz, jedna kwerenda będą tysiące lub miliony rekordów - głosowałbym za bazą.


@jaggi: No jak tak sobie policzyłem to możemy mówić mniej więcej o potencjalnych 36-72 milionach rekordów. W codziennym użytku dużo mniej, ale nie chcemy żeby się wykres rysował minutę chyba? Obecnie to są 2 sekundy może.
  • Odpowiedz