Temat: PostgreSQL 8.2 i dziwny wielkość tabeli
ogolne wyniki zabawy nocnej
1) system: pg 8.2, debian 64bit, 2x operony
2) baza zaladowana - 1 tabela, 4 integery, 1 real, 1 char (11), ilosc rekordow: 13012701, rozmiar: 950MB, 2 indexy na integery, indeksy maja po 279MB :D
3) test. select ilosci rekordow, podzielilem przez 3 (no tak sobie wybralem),sprawdzilem min i max wartosc klucza glownego, i kazalem skryptowi wykonoac update jednego pola N razy. gdzie N jest 1/3 ilosci rekorodow. czyli mowiac lopotoligocznie
skryp zrobil iles tam updatow == 1/3 ilosci rekordow w tabeli. przy kazdym updacie losowal ktory rekord updatowac - losowo. robil po kazej operacji commita. skrypt wykonal 4337566 updatow. ale zeby jeszcze skomplikowac odpalilem 2 procesy z tymi skryptami - zeby byly jakies locki i inne
efekt ciekawy:
wartosc zmienilo 2527802 rekordow. to dziwne, bo 2 procesy, kazdy po 4337566 updatow - czyli 8675132 updatow w sumie (skutecznosc upodatowania - 29.14% :)). nie miej wartosc zmienilo 19.43% danych w calej tabeli
rozmiar tabeli po operacji: 1156MB
rozmiar indexow: ten po ktorym bylo wyszukiwanie: 557MB, drugi index: 475MB
czyli: baza wzrosla o 21.68%
indexy: w sumie o 94.95%
nie jest tak zle wg mnie. puszcze te skrypty jeszcze raz. niech sobie pracuja.
posumowywujac chyba faktycznie cos jest nie tak z indexami. puchna. pochodzi jeszcze 5 takich skryptow przez dzsiejszy dzien i zobaczmy jaka bedzie zmiana
pzd
p.s.
jeszcze jedna uwaga, moze ktos wie. jakims trafem oba te procesy chodzily na 1 procku. to jeszcze powiedzmy, ze moze tak jakos trafilem. ale teraz chodzi 5 procesow z tym skryptem i wszystkie na jednym procku znowu. he ? o so chodzi ?
Sylwester M. edytował(a) ten post dnia 06.07.07 o godzinie 12:56