From: | Thomas Guettler <hv(at)tbz-pariv(dot)de> |
---|---|
To: | Andreas Kretschmer <akretschmer(at)internet24(dot)de>, "pgsql-de-allgemein(at)postgresql(dot)org" <pgsql-de-allgemein(at)postgresql(dot)org> |
Subject: | Re: Fehlenden Index finden |
Date: | 2011-01-11 14:28:28 |
Message-ID: | 4D2C690C.8050804@tbz-pariv.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Hallo Andreas,
Andreas Kretschmer wrote:
> Am 11.01.2011 12:25, schrieb Thomas Guettler:
>> Hallo,
>>
>> ich bin auf der Suche nach Tabellen, die keinen Index haben.
>
> Das ist per se nix schlechtes.
>
>> Bei kleinen Tabellen wird der Index nicht verwendet. Ist modwork_belegart mit 49152 so eine Tabelle?
>
> Ob ein Index verwendet wird, hängt von der Abfrage ab. Nochmals: ein
> Seq-Scan ist per se nix schlimmes.
In kleinen Tabellen ist es OK, ab ein paar tausend Zeilen ist es aber in
der Regel nicht angebracht (aus meiner Sicht, du hast sicherlich mehr Erfahrung).
>
>
>> Wie könnte ich die Stelle in meinem Code finden, die bei dieser Tabelle ein seq. Scan macht? Gibt
>
> Du solltest lang laufende Abfragen mitloggen (log_min_duration passend
> setzen). Dann kannst Du Dir solche Abfragen anschauen, und zwar mit
> explain analyse <your query>. Je nach Abfrage können Indexe helfen,
> müssen aber nicht.
"explain analyze" kenne ich und log_min_duration auch. Wenn aber eine Abfrage
ständig zB 2s braucht und log_min_duration bei 3s, fällt es nicht auf.
> Dein Versuch, fehlende Indexe automatisiert zu
> finden, ist, sorry, naiv. Manchmal helfen z.B. funktionale oder
> konditionale Indexe. Diese wirst Du nicht automatisiert finden.
Große seq. Scans würden mit dieser Methode auf jeden Fall auffallen. Naiv wäre
es, wenn man denkt, dass dann alles perfekt wäre. Aber ein Fehler ist diese Abfrage
sicherlich nicht.
>> es die Möglichkeit, das Postgres die Anfrage abbricht, sobald auf einer bestimmten Tabelle
>> ein seq. Scan durchgeführt wird?
>
> Nein. Du kannst seq-scans disablen, aber dadurch bekommen diese auch nur
> eine sehr hohe Kostenschätzung. Ist Dir das Kostenmodell bekannt?
Ich kenne das Vorgehen von Postgres im Groben. Das regelmäßige ANALYZE wird auch
durchgeführt.
Thomas
PS: Bist du im März wieder in Chemnitz?
http://chemnitzer.linux-tage.de/2011/
--
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas Kretschmer | 2011-01-11 14:56:38 | Re: Fehlenden Index finden |
Previous Message | Andreas Kretschmer | 2011-01-11 13:36:48 | Re: Fehlenden Index finden |