/* Calculates your cache hit rate for reading indexes. */

SELECT
  relname AS name,
  idx_blks_hit AS buffer_hits,
  idx_blks_read AS block_reads,
  idx_blks_hit + idx_blks_read AS total_read,
  CASE (idx_blks_hit + idx_blks_read)::float
    WHEN 0 THEN 'Insufficient data'
    ELSE (idx_blks_hit / (idx_blks_hit + idx_blks_read)::float)::text
  END ratio
FROM
  pg_statio_user_tables
WHERE
  schemaname = '%{schema}'
ORDER BY
  idx_blks_hit / (idx_blks_hit + idx_blks_read + 1)::float DESC;
