Re: Fehlenden Index finden

From: Andreas Kretschmer <akretschmer(at)internet24(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Fehlenden Index finden
Date: 2011-01-11 13:36:48
Message-ID: 4D2C5CF0.2080907@internet24.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

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.

>
> 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. Dein Versuch, fehlende Indexe automatisiert zu
finden, ist, sorry, naiv. Manchmal helfen z.B. funktionale oder
konditionale Indexe. Diese wirst Du nicht automatisiert finden.

Nochmal: Indexe müssen zur Abfrage passen.

> 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?

Andreas
--
Andreas Kretschmer
http://internet24.de

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Thomas Guettler 2011-01-11 14:28:28 Re: Fehlenden Index finden
Previous Message Thomas Guettler 2011-01-11 11:25:32 Fehlenden Index finden