Auf Postgres 8.4, wenn Sie:
select * from pg_stat_all_indexes where relname = 'table_name';
Es gibt die Felder idx_tup_read und idx_tup_fetch zurück. Was ist der Unterschied?
quelle
Auf Postgres 8.4, wenn Sie:
select * from pg_stat_all_indexes where relname = 'table_name';
Es gibt die Felder idx_tup_read und idx_tup_fetch zurück. Was ist der Unterschied?
Wenn Sie sich den Quellcode der Ansicht ansehen, werden Sie feststellen, dass dies idx_tup_read
das Ergebnis eines Aufrufs pg_stat_get_tuples_returned()
und idx_tup_fetch
das Ergebnis eines Aufrufs istpg_stat_get_tuples_fetched()
Das Handbuch beschreibt die beiden Funktionen wie folgt:
pg_stat_get_tuples_returned (oid)
Anzahl der Zeilen, die von sequentiellen Scans gelesen werden, wenn das Argument eine Tabelle ist, oder die Anzahl der Indexeinträge, die zurückgegeben werden, wenn das Argument ein Index ist
pg_stat_get_tuples_fetched (oid)
Anzahl der Tabellenzeilen, die von Bitmap-Scans abgerufen werden, wenn das Argument eine Tabelle ist, oder von Tabellenzeilen, die von einfachen Index-Scans abgerufen werden, die den Index verwenden, wenn das Argument ein Index ist
Aus postgresql-Dokumenten ,
idx_tup_read is number of index entries returned by scans on this index
idx_tup_fetch is number of live table rows fetched by simple index scans using this index
Das read
s ist also, wenn der Index die Position der erforderlichen Zeile zurückgibt, und fetch
es ist, wenn der Index die Tabellenzeilen selbst zurückgibt.
Die offizielle Dokumentation Seite sagt , dass der Unterschied zwischen ihnen erscheint:
In all diesen Fällen idx_tup_read
wird größer als idx_tup_fetch
.