Was sagt mir pg_stat_user_indexes

Hi zusammen,

ich würde gerne meine Datenbank etwas schlanker machen und dachte mir, ich schau mal in die Indexstatistik, was dort wirklich benutzt wird und was nicht, und bin jetzt aber auf ein paar Fragen gestoßen, die mir weder die Dokumentation beantworten, noch zu denen ich im Netz etwas brauchbares gefunden habe.
In dem View pg_stat_user_indexes bekomme ich zu jedem Index drei Werte zurück:
idx_scan, idx_tup_read, idx_tup_fetch.
Die Datenbank (PG 8.3.1) läuft seit Anfang des Jahres ohne Unterbrechnung auf einem Unix-Server und auch die Statistik wurde in der Zeit nicht zurückgesetzt, die Zahlen sollten also einigermassen aussagkräftig sein.

Frage 1: Wenn in allen drei Felder für einen Index eine 0 steht, bedeutet das, dass ich den Index löschen kann, weil er nicht benutzt wird (wenn es kein PK oder FK Index ist) ?

Frage 2: Wo liegt der Unterschied zwischen idx_tup_read, idx_tup_fetch?

Frage 3: Wie kann ein Index auf einer Tabelle, die ich erst vor ein paar Tagen angelegt habe, und die eigentlich noch keiner benutzen kann, weil die Programm dazu noch gar nicht fertig sind im Feld idx_scan den Wert 1.2 Mio stehen haben ?

Ich habe auch einen Eintrag hier im Forum von 2006 zu diesem Thema gefunden, nur leider wurde dort auch nichts konkretes gesagt.

Vielen Dank

jspatz

Hi zusammen,

sind meine Fragen zu trivial und nicht der Beantwortung wert? Das kenne ich gar nicht aus dem Forum. Normalerweise wird hier immer schnell und kompetent Hilfe geleistet. Auch dafür noch mal vielen Dank an alle.
Wie schon gesagt, wäre es mir wichtig hier meine Datenbank einmal zu bereinigen, und möchte natürlich nur die Indices löschen, die gar nicht oder nur alle Jubaljahre mal benötigt werden.
Leider ist die Doku dazu an der Stelle, (zumindest da wo ich geschaut habe) sehr dünn mit Infos, was mit die Statistik denn nun genau sagt.

Vielen Dank

jspatz

Aaaaaalso, grundsätzlich bieten wir unseren Service hier bloß noch gegen Gebühr an. Bitte kaufen Sie ein Supportticket.

Scherz beiseite :wink:

  1. Ja.

  2. idx_tup_read ist die Anzahl “Treffer” in einem Index. idx_tup_fetch zählt die Zeilen, die aus der Tabelle gelesen wurden. Mehr hier:

PostgreSQL: Documentation: Manuals: PostgreSQL 9: The Statistics Collector

  1. Keine Ahnung.

ok, vielen Dank dass ich auch so noch mal Hilfe bekomme :wink:

Das hat mir schon sehr geholfen. Das betreffende Kapitel werde ich noch mal intensiv zu Gemüte führen.

Gruss

jspatz