Postgres'de idx_tup_read ve idx_tup_fetch arasındaki fark


12

Postgres 8.4'te şunları yaptığınızda:

select * from pg_stat_all_indexes where relname = 'table_name';

İdx_tup_read ve idx_tup_fetch alanlarını döndürür, fark nedir?

Yanıtlar:


13

Görüş kaynak koduna baktığınızda, o zaman göreceksiniz idx_tup_readçağıran bir sonucudur pg_stat_get_tuples_returned()ve idx_tup_fetcharama sonucudurpg_stat_get_tuples_fetched()

Kılavuz iki işlevi şu şekilde açıklamaktadır:

pg_stat_get_tuples_returned (oid)

Bağımsız değişken bir tablo olduğunda sıralı taramalarla okunan satır sayısı veya bağımsız değişken bir dizin olduğunda döndürülen dizin girişi sayısı

pg_stat_get_tuples_fetched (oid)

Bağımsız değişken bir tablo olduğunda bitmap taramaları tarafından getirilen tablo satırlarının veya bağımsız değişken bir dizin olduğunda dizin kullanılarak basit dizin taramaları tarafından getirilen tablo satırlarının sayısı


1

Gönderen postgresql docs ,

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

bu nedenle, reads, dizin gerekli satırın geri konumunu verdiğinde ve fetches, dizin tablo satırlarının kendisini geri verdiği zamandır.


0

Resmi dokümantasyon sayfası aralarındaki farkın göründüğünü söylüyor:

  1. dizin bir bitmap dizin taramasına dahil olduğunda
  2. dizin kullanılarak ölü veya henüz işlenmemiş satırlar getirilirse
  3. yalnızca dizin taramasıyla yığın getirilmesinden kaçınılırsa
  4. dizine optimize edicinin denetimleriyle erişildiğinde

Tüm bu durumlarda idx_tup_readdaha büyük olur idx_tup_fetch.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.