Na Postgres 8.4, gdy:
select * from pg_stat_all_indexes where relname = 'table_name';
Zwraca pola idx_tup_read i idx_tup_fetch, jaka jest różnica?
źródło
Na Postgres 8.4, gdy:
select * from pg_stat_all_indexes where relname = 'table_name';
Zwraca pola idx_tup_read i idx_tup_fetch, jaka jest różnica?
Patrząc na kod źródłowy widoku, zobaczysz, że idx_tup_read
jest to wynik wywołania pg_stat_get_tuples_returned()
i idx_tup_fetch
wynik wywołaniapg_stat_get_tuples_fetched()
Podręcznik opisuje dwie funkcje w następujący sposób:
pg_stat_get_tuples_returned (oid)
Liczba wierszy odczytanych podczas skanowania sekwencyjnego, gdy argument jest tabelą, lub liczba pozycji indeksu zwróconych, gdy argument jest indeksem
pg_stat_get_tuples_fetched (oid)
Liczba wierszy tabeli pobranych przez skanowanie bitmapy, gdy argument jest tabelą, lub wierszy tabeli pobranych przez proste skanowanie indeksu przy użyciu indeksu, gdy argument jest indeksem
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
więc read
s są wtedy, gdy indeks zwraca wymaganą pozycję wiersza, a fetch
es są wtedy, gdy indeks zwraca same wiersze tabeli.
Oficjalna strona dokumentacji mówi, że pojawia się różnica między nimi:
We wszystkich tych przypadkach idx_tup_read
staje się większy niż idx_tup_fetch
.