🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #194806

Re: optymalizacja count.

#194806
From: JaceK
Date: Fri, 22 Jan 2016 21:17
30 lines
2389 bytes
On 22.01.2016 20:37, M.M. wrote:
> W Postgresie wolno działa mi
>
> select count(*) from table;
>
> Moim zdaniem nie powinno to działać wolno. Silnik bazy może
> sobie zliczać na bieżąco ilość rekordów i podać wyniki. Jest
> jakaś opcja do tego, aby nie pisać procedur w zdarzeniach?

Liczba rekordów w tabeli nie jest atrybutem, który baza utrzymuje w 
ramach swojej pracy (w przeciwieństwie do np. nazw i lokalizacji 
indeksów, tabel, definicji ról itp. które to atrybuty są w słowniku bazy 
danych).

Oczywiście można sobie wyobrazić mechanizm, który to robi, ale z 
jakiegoś powodu tego się nie implementuje - prawdopodobnie dlatego, że w 
dynamicznych środowiskach i wielu tabelach baza by spędzała mnóstwo 
czasu na utrzymywaniu takich "wyliczanych" informacji nieistotnych dla 
poprawnego działania bazy, zamiast na obsłudze zapytań. Że nie wspomnę o 
mechanizmach zapewniających odpowiedni poziom izolacji: jeden użytkownik 
dostanie count(*) ze swojej sesji, a inny po wprowadzeniu dodatkowych 
niezatwierdzonych jeszcze rekordów inną wartość. Utrzymywanie wielu 
wartości dla wielu sesji byłoby koszmarem.

Statystyki na tabelach są najbliższe konceptowi utrzymywania informacji 
o liczbie rekordów w tabeli przez bazę. Nie są to jednak wartości 
utrzymywane na bieżąco lecz gromadzone na żądanie lub w ramach 
cyklicznego procesu utrzymaniowego.

JaceK
Technical Details
Message-ID: <56a29c63$0$25173$c3e8da3$e408f015@news.astraweb.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!news.alt.net!news.astraweb.com!border5.newsrouter.astraweb.com!not-for-mail
References: <c66d991f-8f3a-4aa9-b6f6-32eb82e4d1e8@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!news.alt.net!news.astraweb.com!border5.newsrouter.astraweb.com!not-for-mail
Subject: Re: optymalizacja count.
Newsgroups: pl.comp.bazy-danych
References: <c66d991f-8f3a-4aa9-b6f6-32eb82e4d1e8@googlegroups.com>
From: JaceK <JaceK@wu_pe.pe_el>
Date: Fri, 22 Jan 2016 22:17:20 +0100
MIME-Version: 1.0
In-Reply-To: <c66d991f-8f3a-4aa9-b6f6-32eb82e4d1e8@googlegroups.com>
Lines: 32
Message-ID: <56a29c63$0$25173$c3e8da3$e408f015@news.astraweb.com>
Organization: Unlimited download news at news.astraweb.com
NNTP-Posting-Host: 54e83b36.news.astraweb.com
X-Trace: DXC=>g4EB[2F@^=JQj]j1AWO\;L?0kYOcDh@:]?QZ6gK[5b<U\YKDg@=Bb3E[^3AaXCNS;10YP=OaTjM0MQhjcg^IoN52=\D2?Kb4o>JJjm2HET3<<
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit