Re: Fehlenden Index finden

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

In response to

Responses

Browse pgsql-de-allgemein by date

  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