🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: PostgreSQL - jak zbudować optymalne zapytanie?

#194321
From: Adam
Date: Sat, 14 Mar 2015 12:38
38 lines
3094 bytes
W dniu 2015-03-13 o 05:54, M.M. pisze:
> On Thursday, March 12, 2015 at 4:14:39 PM UTC+1, nk...@toya.net.pl wrote:
>>(...)
>> Pytanie dotyczyło właśnie o kolejność członów w warunku WHERE
>> i tu moja podpowiedź - od nakrótszego do najwolniejszego oczywiście
>> jeśli system tak działa, że po nie spełnieniu pierwszego członu
>> dajmy na to "p1 IS NOT NULL" dalszych już nie sprawdza bo po co.
>> Kolega pisał, że aż 90% rekordów ma NULLe to chyba lepiej jak
>> już na wstępie system zrezygnuje ze sprawdzania dalszych członów.
> W sumie racja, jeśli pola w danym silniku są zorganizowane jako
> tabele kolumnowe, to nie musi dociągać pozostałych danych. Można
> obliczenia wykonywane w klauzuli where przyspieszyć ze 1.5 raza.
> A to w niektórych przypadkach może dać zysku z 10% na całym
> zapytaniu. Pytanie czy warto się bić o te 10%?
> (...)

Patrz szerzej.
Przy jednym kliencie może to być 10%.
Jeśli jest to baza danych "firmowa" (czyli obsługująca magazyn, handel, 
kadry, itd.) to klientów (równoczesnych) może być kilkudziesięciu, a 
zapytać setki czy tysiące.
Jeśli jest to sklep internetowy, to klientów mogą być setki.
Wtedy każde 10% robi radykalną różnicę. A jeśli się "umie" robić selecty 
na widokach (w MSSQL), to chyba też jest duży plus.

Ja czasami widzę coś w rodzaju:
select (...) where (...) and (...) and 1=1

Co ciekawe, bez warunku "and 1=1" odpowiedź idzie dłużej. Dziwne, gdyż 
teoretycznie każdy nowy warunek powinien przedłużyć odpowiedź. Ważne też 
jest, w którym miejscu siedzi owo 1=1.
Ale tu już trzeba dogłębnie znać silnik.


-- 
Pozdrawiam.

Adam
Technical Details
Message-ID: <me1a4l$u17$1@usenet.news.interia.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.interia.pl!not-for-mail
References: <mci51m$dju$1@news.icm.edu.pl> <fk06sb-jtf.ln1@depesz.com> <mctd2q$q6k$1@news.icm.edu.pl> <5bb452da-87e3-46b6-bbe4-51cd8e95fc73@googlegroups.com> <c57ea06e-2252-4f0c-ad4b-a2a2fed94ac4@googlegroups.com> <ef9d0ff9-dc2b-4ce1-845d-2f080e919ebd@googlegroups.com> <27b8c3e2-f0d5-4667-a74a-09a11cbeb915@googlegroups.com> <2330ae3c-1ffb-4e8a-8327-3a7cb9cebc0b@googlegroups.com> <6a2452a5-2772-4d96-af45-9858c4435913@googlegroups.com> <bd8c25b1-9d49-44a0-987f-4370401878a8@googlegroups.com> <a1d9f705-3bd5-4e94-88b7-11dbb5b3b1f7@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.interia.pl!not-for-mail
From: Adam <a.g@poczta.onet.pl>
Newsgroups: pl.comp.bazy-danych
Subject: Re: PostgreSQL - jak zbudować optymalne zapytanie?
Date: Sat, 14 Mar 2015 13:38:44 +0100
Organization: INTERIA.PL S.A.
Lines: 38
Message-ID: <me1a4l$u17$1@usenet.news.interia.pl>
References: <mci51m$dju$1@news.icm.edu.pl> <fk06sb-jtf.ln1@depesz.com> <mctd2q$q6k$1@news.icm.edu.pl> <5bb452da-87e3-46b6-bbe4-51cd8e95fc73@googlegroups.com> <c57ea06e-2252-4f0c-ad4b-a2a2fed94ac4@googlegroups.com> <ef9d0ff9-dc2b-4ce1-845d-2f080e919ebd@googlegroups.com> <27b8c3e2-f0d5-4667-a74a-09a11cbeb915@googlegroups.com> <2330ae3c-1ffb-4e8a-8327-3a7cb9cebc0b@googlegroups.com> <6a2452a5-2772-4d96-af45-9858c4435913@googlegroups.com> <bd8c25b1-9d49-44a0-987f-4370401878a8@googlegroups.com> <a1d9f705-3bd5-4e94-88b7-11dbb5b3b1f7@googlegroups.com>
NNTP-Posting-Host: ent22.internetdsl.tpnet.pl
Mime-Version: 1.0
X-Trace: usenet.news.interia.pl 1426336725 30759 83.15.205.22 (14 Mar 2015 12:38:45 GMT)
X-Complaints-To: usenet@firma.interia.pl
NNTP-Posting-Date: Sat, 14 Mar 2015 12:38:45 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 5.2; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
In-Reply-To: <a1d9f705-3bd5-4e94-88b7-11dbb5b3b1f7@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit