in postgresql_metrics/postgres_queries.py [0:0]
def get_index_hit_rates(conn):
sql = ("SELECT current_database() as db_name, relname as table_name, "
"idx_scan as index_hit, seq_scan as index_miss "
"FROM pg_stat_user_tables")
results = query(conn, sql)
index_hit_rates = []
LOG.debug(results)
for db_name, table_name, index_hit, index_miss in results:
if index_hit is not None and index_miss is not None:
if index_hit == 0:
recent_ratio = 0
else:
recent_ratio = index_hit / float(index_miss + index_hit)
index_hit_rates.append((db_name, table_name, recent_ratio))
else:
index_hit_rates.append((db_name, table_name, None))
return index_hit_rates