<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Optymalizacja bazy danych kroko po kroku]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=157</link>
		<description><![CDATA[Najświeższe odpowiedzi w Optymalizacja bazy danych kroko po kroku.]]></description>
		<lastBuildDate>Thu, 19 Mar 2009 13:56:30 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=640#p640</link>
			<description><![CDATA[Indexy (na przykład):

"muarab_przedmiot_a_id_ekwipunek" btree (id_muarab_ekwipunek, a) <- podobnych undexów jest z 10 sztuk narazie ale docelowo będzie około 18

Bo jest tego dużo, w tym stylu. Odkąd je pozakładałem nie było żadnych indexów. Ucze się dopiero je stawiać.

Odkąd je pododawałem to sporo mi przyspieszył system, na szczęści trafiłem na kogoś kto to potrafił mi wytłumaczyć przy piwku. :)

Konfig sprzętu:
shared_buffers=50000 (ustawiał mi admin na 50k było chyba jakoś innaczej)
effective_cache_size = 1000 (do tej pory było zahaszowane ale od haszowałem)

maszyna : cantos 5.0 
Procesor dwurdzeniowy, 1GB pamięci RAM i dyskami w Raid 0 + 1


Już pozindeksowaniu (przedzindexowaniem jest gdzieś powyżej):
!!!=# explain SELECT sum(waga) FROM muarab_broniereczne WHERE id_muarab_ekwipunek=1 AND a='A';
                                                     QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=7.03..7.04 rows=1 width=4)
   ->  Index Scan using muarab_broniereczne_a_id_ekwipunek on muarab_broniereczne  (cost=0.00..7.03 rows=2 width=4)
         Index Cond: ((id_muarab_ekwipunek = 1) AND (a = 'A'::text))
(3 rows)

Może ktoś ma pomysła jak więcej wycisnąc sekund z takiego zapytania :D]]></description>
			<author><![CDATA[zbytnik@m67.org (zbytnik)]]></author>
			<pubDate>Thu, 19 Mar 2009 13:56:30 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=640#p640</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=639#p639</link>
			<description><![CDATA[Podaj jakie masz indeksy założone dla tej bazy?]]></description>
			<author><![CDATA[dummy@example.com (karlos)]]></author>
			<pubDate>Thu, 19 Mar 2009 13:14:40 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=639#p639</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=635#p635</link>
			<description><![CDATA[Config bazy masz jakis ? ;]
shared_buffers = ?
effective_cache_size = ?

Jaka maszyna ... dajesz wszystko co masz :P]]></description>
			<author><![CDATA[dummy@example.com (psocha)]]></author>
			<pubDate>Wed, 18 Mar 2009 07:23:14 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=635#p635</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=631#p631</link>
			<description><![CDATA[NO dobra od początku:

Czasy zaczynają wzrastać wraz z ilością użytkowników. Najpierw było 0,9 s(grało się płynnie) potem stopniowo wzrastało do wartości 10 s (muł totalny).

Przez ten czas dopisałem trochę kodu (około 25%) i doszło trochę grafiki. Sprawdziłem, strona bez bazy robi na poziomi 0,6 - 0,7 sek z bazą już 9,0 - 10,0 czyli wniosek: baza danych gdzieś coś przycina.

Znalazłem jedno miejsce odpowiedzialne za około 0,7 - 0,8 s jest to zapytanie proste typu:
SELECT sum(waga) FROM muarab_broniereczne WHERE id_muarab_ekwipunek=1 AND a='A';
Takich zapytań jest około 10 sztuk i tutaj muli na poziomie około 4 sekund

Parametr a to znaczy że przedmiot ma być zliczony do wagi

A tutaj wynik explaina:
!!!!=# explain SELECT sum(waga) FROM muarab_broniereczne WHERE id_muarab_ekwipunek=1 AND a='A';
                                             QUERY PLAN
-----------------------------------------------------------------------------------------------------
 Aggregate  (cost=18.29..18.30 rows=1 width=4)
   ->  Bitmap Heap Scan on muarab_broniereczne  (cost=14.27..18.28 rows=1 width=4)
         Recheck Cond: ((id_muarab_ekwipunek = 1) AND (a = 'A'::text))
         ->  BitmapAnd  (cost=14.27..14.27 rows=1 width=0)
               ->  Bitmap Index Scan on index_id_muarab_ekwipunek  (cost=0.00..2.15 rows=42 width=0)
                     Index Cond: (id_muarab_ekwipunek = 1)
               ->  Bitmap Index Scan on index_a  (cost=0.00..11.88 rows=1679 width=0)
                     Index Cond: (a = 'A'::text)
(8 rows)]]></description>
			<author><![CDATA[zbytnik@m67.org (zbytnik)]]></author>
			<pubDate>Tue, 17 Mar 2009 15:09:37 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=631#p631</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=630#p630</link>
			<description><![CDATA[Co znaczy schody? Baza muli. Nie wyrabiają select'y, inserty, update'y ? Jak dużo połączeń z baza jest nawiązywanych?]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Tue, 17 Mar 2009 14:59:07 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=630#p630</guid>
		</item>
		<item>
			<title><![CDATA[Optymalizacja bazy danych kroko po kroku]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=628#p628</link>
			<description><![CDATA[Szukam własnie jak przeprowadzić optymalizację bazy, używam postgresa już od dość dawna ale jak dotąd nie przekroczył on 50K wpisów w jednej tabeli. Mam jednak teraz doczynienia z większą bazż (napisałem grę webową: [url=http://www.muarab.pl]www.muarab.pl[/url]) i się zaczęły schody.

[b]Dlatego mam kilka pytań:[/b]


[b]- Od czego zacząć optymalizację ?[/b]

[b]- Jak i czy warto zrobić indexowanie ?[/b]

[b]- auto vacuum (polecenie vacuum full przyspiesza mi gre) jak to zrobic żeby wrzucić to w  jakiś automat (np: o 4 rano co 7 dni) ??[/b]

[b]- Czy są może jakieś wartości (pamięć, dzielenie itp) które warto sprawdzić i ustawić innaczej niż defaultowo ??[/b]



Oczywiście są to podstawowe pytania będę miał ich więcej. 

Używam tej bazy ale ani z dokumentacji nic nie wyczytałem ciekawego ani na forach.

Potrzebuję przykładów itp. z doświadczenia płynących a nie pustej dyskusji.]]></description>
			<author><![CDATA[zbytnik@m67.org (zbytnik)]]></author>
			<pubDate>Tue, 17 Mar 2009 14:36:33 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=628#p628</guid>
		</item>
	</channel>
</rss>
