gibt es eine Möglichkeit, postgres tatsächliche E / A für die Abfrage anzuzeigen

7

Ich weiß, dass ich mit EXPLAIN ANALYSE die vorhergesagten Kosten und tatsächlichen Ausführungszeiten (die in verschiedenen Einheiten sind, argh!) ermitteln kann, aber gibt es eine Möglichkeit, Postgres zu sagen, wie viel I / O (logisch oder physisch) ) dass es tun muss, um eine Anfrage zu erfüllen?

(Ich suche nach dem Äquivalent von "set statistics io on" für Sybase oder MS SQL Server.)

    
Chris Curvey 02.06.2011, 16:58
quelle

4 Antworten

9

Ab PostgreSQL 9.0 können Sie Folgendes ausführen:

%Vor%

Und es wird Ihnen zeigen, wie die Anweisung mit dem PostgreSQL-Cache interagiert hat. In Fällen, in denen dies einen Cache-Fehler meldet, handelt es sich um einen OS-Aufruf, um etwas zu lesen. Sie können nicht sicher sein, dass es sich um eine physische E / A handelt, da sie sich möglicherweise im Betriebssystem-Cache befindet. Aber das ist wahrscheinlich eher das, wonach Sie suchen, als sich die pg_stat_ * -Informationen anzusehen.

    
Greg Smith 04.06.2011, 14:43
quelle
8

Diese Antwort bezieht sich nicht direkt auf eine bestimmte Abfrageanweisung, sondern hilft denjenigen, die hier beendet haben, nach einer Möglichkeit zu suchen, einen "Datenträger vs Cache" anzuzeigen:

%Vor%

    
Christian 19.08.2015 15:58
quelle
1

Es ist leider nicht so einfach wie ein SET STATISTICS IO ON für PostgreSQL . Es gibt jedoch IO-Statistiken, die über die Systemkataloge pg_statio_* verfügbar sind. Es ist nicht perfekt, da die Daten nicht auf eine Sitzung beschränkt sind. Wenn Sie jedoch überprüfen möchten, wie effizient Abfragen in einer Umgebung mit sauberem Raum sind, funktioniert sie für die meisten Probleme gut genug.

Ссылка

    
Sean 02.06.2011 18:25
quelle
1

Nicht wirklich, da sich PostgreSQL auch stark auf den Betriebssystem-Cache verlässt und nicht wissen kann, was dort vor sich geht. Die pg_statio * -Familie von Ansichten in pg_catalog führt fortlaufend Zählungen von Treffern und tatsächlichen Lesevorgängen durch, aber diese Lesevorgänge haben möglicherweise den Betriebssystem-Cache getroffen.

    
Eelke 02.06.2011 18:27
quelle

Tags und Links