Article View: pl.comp.bazy-danych
Article #194806Re: optymalizacja count.
From: JaceK
Date: Fri, 22 Jan 2016 21:17
Date: Fri, 22 Jan 2016 21:17
30 lines
2389 bytes
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-mailReferences:
<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