ďťż
 
Baza danych i pamiec - pytanie ďťż
 
Baza danych i pamiec - pytanie
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Baza danych i pamiec - pytanie



Piotrek_20 - 01-09-2007 00:17
Baza danych i pamiec - pytanie
  Witam,
Z gory powiem ze nie jestem specjalista od baz danych, wiec prosze
zrozumiec jesli komus wyda sie pytani glupie.
Duzo osob zwykle mowi ze baza danych potrzebuje duzych ilosci. Czy
ktoś moglby mi wytlumaczyc w jakim celu potrzeba duzo pamieci?
Jesli chodzi o duzo to znow ile jest zalecane.
Dziwie sie otoz dlatego, ze mam zainstalowanego postgresa i z moją
bazą (co prawda mala jest, ok 2mln rekordow) pobieranych jest 8504k
ram,
tak przynajmniej pokazuje mi proces z windowsa.





=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 01-09-2007 00:17

  Dnia Fri, 31 Aug 2007 11:11:00 -0700, Piotrek_20 <anna_kotek@o2.pl> wklepał(-a):

>Witam,
>Z gory powiem ze nie jestem specjalista od baz danych, wiec prosze
>zrozumiec jesli komus wyda sie pytani glupie.
>Duzo osob zwykle mowi ze baza danych potrzebuje duzych ilosci. Czy
>ktoś moglby mi wytlumaczyc w jakim celu potrzeba duzo pamieci?

Przede wszystkim do cache'owania pobranych danych - żeby nie czytać wielokrotnie
z dysku. Ponadto do łączenia, sortowania danych, zapamiętywania stanu sesji z
bazą.

>Jesli chodzi o duzo to znow ile jest zalecane.
>Dziwie sie otoz dlatego, ze mam zainstalowanego postgresa i z moją
>bazą (co prawda mala jest, ok 2mln rekordow) pobieranych jest 8504k
>ram,
>tak przynajmniej pokazuje mi proces z windowsa.

Nieważne ile rekordów, ważne jaka jest konfiguracja i w jaki sposób korzysta się
z bazy.
--
Sławomir Szyszło mailto:slaszysz@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?grou...mp.bazy-danych




=?iso-8859-2?Q?Bart=B3omiej_Bochi=F1ski?= - 02-09-2007 00:14

  > Nieważne ile rekordów, ważne jaka jest konfiguracja i w jaki sposób korzysta się
> z bazy.

podlacze sie pod temat.
apropo konfiguracji to czy mozna robic to inaczej niz na czuja i idac za
poradnikami w internecie? takie jakby statystyki, ktore mi powiedza co jak
najlepiej ustawic. przy zmianie roznych ustawien load skacze od 0.5 do 4

--
Bartłomiej




=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 02-09-2007 00:14

  Dnia Sat, 1 Sep 2007 23:06:55 +0200, Bartłomiej Bochiński <adresik@gmail.com>
wklepał(-a):

>podlacze sie pod temat.
>apropo konfiguracji to czy mozna robic to inaczej niz na czuja i idac za
>poradnikami w internecie? takie jakby statystyki, ktore mi powiedza co jak
>najlepiej ustawic. przy zmianie roznych ustawien load skacze od 0.5 do 4

No najlepiej to rozumieć te ustawienia i wtedy dopiero zmieniać. :D
Ale jak pokazuje praktyka, nie zawsze zmiana przynosi oczekiwane efekty - wtedy
liczy się doświadczenie.

A po pierwsze to trzeba pisać o jakiej bazie mowa... w temacie!
--
Sławomir Szyszło mailto:slaszysz@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?grou...mp.bazy-danych





Dawid Kuroczko - 03-09-2007 00:06

  Piotrek_20 o adresie anna_kotek@o2.pl (hmmm?!) napisał:
> Witam,
> Z gory powiem ze nie jestem specjalista od baz danych, wiec prosze
> zrozumiec jesli komus wyda sie pytani glupie.
> Duzo osob zwykle mowi ze baza danych potrzebuje duzych ilosci. Czy
> ktoś moglby mi wytlumaczyc w jakim celu potrzeba duzo pamieci?
> Jesli chodzi o duzo to znow ile jest zalecane.

Hm. Mniej więcej po to samo po co Twojemu komputerowi przydaje się
dużo pamięci. Gdy czegoś nie ma w pamięci, zwykle trzeba to odczytać
z dysku -- a dysk jest o kilka rzędów wielkości wolniejszy niż pamięć.
To samo dotyczy bazy danych -- jeśli coś jest w pamięci, dostęp do
tego jest bardzo szybki -- jeśli nie ma, trzeba się wybrać do dysku
po odczytanie tych danych... Baza oprócz zwracania wyników wykonuje
też inne operacje -- łączenie tabel (JOIN) sortowania (ORDER BY) czy
grupowanie (GROUP BY) trzeba gdzieś wykonać -- jeśli mamy dużo pamięci,
wszystko zrobi się (szybko) w pamięci. Jeśli nie -- baza będzie
starała się wykonać tyle ile się da w pamięci, co jakiś czas posiłkując
się (wolnym) dyskiem.

A teraz wyobraź sobie bazę, której dane na dysku zajmują 100 GB (np.
dane o zamówieniach firmy X), przy czym użytkownicy najaktywniej pytają
o zamówienia z okresu ostatniego tygodnia. Jeśli mamy BARDZO mało
pamięci -- prawie każde zapytanie o zamówienie musi być odczytane
z dysku. Dysk jest pytany tak wiele razy o tak różne dane, że wszyscy
czekają wieeeki na potrzebne informacje. Jeśli mamy bardzo dużo RAM-u
(np. 32GB) -- to praktycznie wszystkie dane o które zwykle pytają klienci
są w pamięci, a dysk praktycznie się nudzi -- tylko co jakiś czas
odczyta jakąś informację, której było brak w pamięci. Pomiędzy tymi
dwoma przypadkami masz całe pole do popisu dla DBA (jak to ustawić,
żeby i baza działała sprawnie, i żeby nie marnować niepotrzebnie
zasobów).

Dodam, że dałem tu specyficzny przypadek -- odczyt danych. Podałem
akurat taki bo powinien intuicyjnie pokazywać po co dużo pamięci.

Dalej, dajmy na to, że nasza firma chce zrobić zestawienie, w jakich
dniach, jacy klienci składali ile zamówień (np. GROUP BY
klient_id,data). Jeśli mamy dane z ostatnich 5 lat (ponad 1800 dni)
a średnio dziennie zamówienia składało 10 klientów -- to wynik
będzie się składał z około 1800 * 10 = 18 000 wierszy).
Jak mamy dużo pamięci to będziemy wszystko trzymać w pamięci
(pamiętać 18 000 wartości? pikuś). Jeśli mamy mało, baza musi
kombinować (najpierw sobie posortuje (korzystając z dysku, gdy
nie będą się mieścić w pamięci) po klient_id,data, następnie
jeszcze raz przeczyta posortowane już wyniki (znów z dysku!
przecież nie mieści się w pamięci!), zliczając powtórzenia
każdej pary klient_id,data.

Mam nadzieję, że jakoś rozjaśniłem dlaczego. Dodatkowo dodam, że
oprócz pamięci drugą rzeczą, o którą trzeba dbać to dysk twardy.
A właściwie macierz RAID. RAID daje z jednej strony wydajność
(24 dyski są "troszkę" wydajniejsze niż jeden, zwłaszcza jeśli mają
pamięć podręczną podtrzymywaną z baterii; nie dotyczy kiepskich
kontrolerów), z drugiej strony bezpieczeństwo danych.

> Dziwie sie otoz dlatego, ze mam zainstalowanego postgresa i z moją
> bazą (co prawda mala jest, ok 2mln rekordow) pobieranych jest 8504k
> ram, tak przynajmniej pokazuje mi proces z windowsa.

PostgreSQL będzie wykorzystywał tyle pamięci ile mu podasz w pliku
konfiguracjnym. Trzy najważniejsze zmienne tam to:
* shared_buffers -- ile pamięci ma być wykorzysywane na wspólny bufor
(podręczna kopia danych).
* work_mem -- ile pamięci ma być wykorzystywane na trzymanie
tymczasowych danych na sortowania itp. (ORDER BY, GRUP BY, też JOIN)
(uwaga! ta wartość to max. per sesja)
* maintenance_work_mem -- ile pamięci wykorzystywać na tymczasowe
dane potrzebne do budowania indeksów itp. (też max. per sesja).

Pozdrawiam,
Dawid




kenubi - 04-09-2007 00:08

  Bartłomiej Bochiński wrote:

>> Nieważne ile rekordów, ważne jaka jest konfiguracja i w jaki sposób
>> korzysta się z bazy.
>
> podlacze sie pod temat.
> apropo konfiguracji to czy mozna robic to inaczej niz na czuja i idac za
> poradnikami w internecie? takie jakby statystyki, ktore mi powiedza co jak
> najlepiej ustawic. przy zmianie roznych ustawien load skacze od 0.5 do 4
>
>
dobrze jest sprawdzic na google wpis

+Adam+Buraczewski+postgresql

m.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= =?iso-8859-2?Q?=5BMySQL=5D_Wy=B6wietlenie_wszystkich_rekordow _zawierajacy?==?iso-8859-2?Q?ch_duplikat_a__moze_inna_struktura_bazy_danych ?= Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8 [laik]Jak =?ISO-8859-2?Q?stworzy=E6/zaczac_tworzyc__ma=B3=B1?==?ISO-8859-2?Q?__baz=EA_danych_na_potrzeby_www=3F?= [mysql] przenoszenie danych =?ISO-8859-2?Q?mi=EAdzy_tabelami_?==?ISO-8859-2?Q?w_r=F3=BFnych_bazach?= Ksiazka - "Podstawowy =?ISO-8859-2?Q?wyk=B3ad_z_system=F3w_?==?ISO-8859-2?Q?baz_danych=22?= Połączenie bazy danych z wykonaniem polaczenia telefonicznego [mssql] insert do tabeli na podstawie danych z innej tabeli [MySQL] - Wstawianie aktualnej daty do bazy danych - PHP i MySQL =?ISO-8859-2?Q?kto_zrobi_baz=EA_danych=3F=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • czterowers.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com