Czołem mirki, mam bazę mysql postawianą lokalnie. Jedna z tabel ma ~500k rekordów (konkretnie jest to widok). Na moim sprzęcie (i7-860 2.8 GHz, 12GB ram 1600 MHz) pobranie rekordu z samego końca tabeli zajmuje ~12 sekund. Dla klienta zamówiłem już porządny serwer (Dell PowerEdge T110 II), ale wolałbym to rozwiązać programistycznie.

Na pewno pomoże domyślne posortowanie tabeli od końca - co wystarczy na większość przypadków, jednak chciałbym uzyskać jak najlepszy czas dostępu
  • 35
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Przechowywanie bardzo dużej ilości obrazów w bazie danych jako blob (dokładniej to w Cassandrze) - jak bardzo zły jest to pomysł? Chodzi mi o warunki polskie - by lag był jak najmniejszy (inaczej bym zaprzęgnął Amazon S3, a tak to jakąś polską chmurę/VPSy mógłbym wziąć). Obrazy nie będą duże, max 1-2MB, średnio ~200kB.

Z plusów widzę:
- banalnie prosto można zrobić klastry Cassandry, różne datacenters etc.
- brak single point of failure przy paru klastrach,
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@RonPaul: IMHO nie ma problemu, ale!
Czy dane mogą być streamowane czy całość obrazka idzie do pamięci? Bo jeśli to drugie, to przy dużym obciążeniu może wywalić out of memory.
  • Odpowiedz
Czy dane mogą być streamowane czy całość obrazka idzie do pamięci? Bo jeśli to drugie, to przy dużym obciążeniu może wywalić out of memory.


@Ginden: mogą być streamowane AFAIK, ale będę o tym coś więcej czytał, żeby nie było przypału ;)
dzięki.
  • Odpowiedz
Mirki z programowania mam taki problem.

Na kompie w biurze miałem postawioną bazę (nie moja) na, której testowałem program.
Program miałem napisany w C# wykorzystując Entity Data Model.
Problem pojawił się w momencie gdy bazę zainstalowano w miejscu docelowym. Baza niczym nie różni się od tej mojej, na której testowałem program oprócz tego, że ma inną nazwę.

Problem
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ej mirki mam taka sytuacje.
Mam baze danych sql server 100 GB i 14 GB wolnego miejsca.
Zrobiłem sobie na maszynei obok testy co się stanie jak usunę 20 mln rekordów archiwalnych.
Problem w tym, że na samą operacje delete sql server zabrał sobie 15 GB miejsca, boję się że na produkcji ten
manerw się nie uda.
Macie jakies pomysły poza wrzucaniem dodatkowego dysku ?
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Crisu: Kilka pomysłów:
- usuwaj w częściach
- sprawdzaj fragmentację indeksów, mniejsza fragmentacja = mniejsze zużycie dysku.
- usuń indeksy i stwórz je od nowa po usunięciu danych
- zmniejsz poziom recovery do simple
- zwiększ fill factor do 100, jeśli to tabela, gdzie nie robi się raczej DELETE
  • Odpowiedz

Witojcie mireczki, właśnie wróciłem z pracy, jako że jestem poza granicami naszego kraju to jest jeszcze wcześnie :)
właśnie pije piwko ( bo przecież przy piwie lepiej się programuje/uczy :) )
A teraz przechodząc do sedna sprawy,
we wrześniu mam poprawkę z Baz danych,
mianowicie wygląda to tak, że przed egzaminem poprawkowym muszę zaliczyć projekt,
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak prawidłowo tworzyć bazy z różnymi typami podmiotów?
Powiedzmy, nasza firma zawiera umowy zarówno z innymi firmami, z placówkami publicznymi i osobami fizycznymi.
Oczywiście, mamy tabele Podmioty, Osoby, InstytucjePanstwowe i Firmy.
Jak powinna wyglądać struktura tabeli Podmioty?

#sql #bazydanych
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ginden: dobre pytanie
natomiast odpowiedź cię rozczaruje
prawidłowy model wyklucza relację podmioty
powiązanie pomiędzy podmiotem a procesem (np transakcją) powinno następować na poziomie
  • Odpowiedz
@cycun: Są dwa rozwiązania - trigger (nie procedura) i widok. Najlepszym moim zdaniem rozwiązaniem byłby widok.

Update można zrobić dla każdego rekordu, ale to będzie niewydajne.
  • Odpowiedz
@bred_one: kiedyś robiłem taki projekt apka w Javie + oracle ale bez żadnego RESTa i tam całe API było za pomocą procedur tak, że apka w ogóle nie miała dostępu do tabel. Często się tam kursory przewijały, ale zwykle do jakiegoś prostego przeformatowania wyniku.
  • Odpowiedz
Mireczki, prośba! Możecie polecić jakieś (w zasadzie jakiekolwiek, bo już nic mi nie działa ( ͡° ʖ̯ ͡°)) narzędzie do zrobienia schematu bazy danych w #postgresql, najlepiej w svg, ale png/jpg/pdf też nie pogardzę. Problem w tym, że mam bazę na serwerze i żadne graficzne, javowe programy nie wchodzą w grę. Najlepiej komenda, która wypluwa pliczek svg, który sobie ściągnę do siebie i pooglądam :D
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@gagit: jak masz prostą bazę (bez jakichś rozwiązań typowo postgresowych) to możesz ją zmigrować do MySQL i użyć MySQL Workbench aby wygenerować diagram EER :) Jest także opcja generowania diagramu ze skryptu SQL, możesz spróbować czy pójdzie :)
  • Odpowiedz
@gagit: ale zupełnie nie masz dostępu do tej bazy online? jeśli nie to może na serwerze pg_dump schematu tylko, wrzuć do lokalnej a wtedy hulaj dusza, np. importujesz DbSchema i tam sobie układasz obrazek
  • Odpowiedz
Wczytuję dane z pliku do bazy #sqlite (w #qt). Są to pojedyncze wiersze z czterema wartościami:

insert into transactions values (%1,%2,%3,%4)
ale jest ich bardzo dużo. Jak wstawiałem do bazy #mssql to zajęło to trochę czasu, może z pół godziny, a w tempie w jakim wstawia się do sqlie, to zajmie chyba kilka dni... Plik ten sam, kod realizujący wczytywanie ten sam. Tabela taka sama,
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki, poleci ktoś dobrą książkę/stronę www/cokolwiek traktującą o działaniu baz Oracle? Chodzi mi o takie zakulisowe działanie przy wykonywaniu zapytań itd. Jeśli ktoś ma coś podobnego dla MS SQL, to też chętnie przyjmę.

#programowanie #naukaprogramowania #bazydanych
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#bazydanych #programowanie

Dla tabel z np walutami, krajami lub czymkolwiek innym co ma krotki unikalny ale noszacy informacje kod - dajecie klucz glowny ktory jest tym kodem czy zawsze integer, autonumber?

Zawsze robilem integer, ale mysle ze czasem mozna zaoszczedzic na JOIN skoro klucz nosi informacje ktora czasem moze wystarczyc. Na przyklad wyswietla sie kwote i klucz obcy "EUR" zamiast robic JOIN zeby sprawdzic kod waluty...
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach