You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
977 B
SQL
32 lines
977 B
SQL
--
|
|
-- Author: Hari Sekhon
|
|
-- Date: 2020-08-05 15:08:23 +0100 (Wed, 05 Aug 2020)
|
|
--
|
|
-- vim:ts=2:sts=2:sw=2:et:filetype=sql
|
|
--
|
|
-- https://github.com/harisekhon/bash-tools
|
|
--
|
|
-- License: see accompanying Hari Sekhon LICENSE file
|
|
--
|
|
-- If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish
|
|
--
|
|
-- https://www.linkedin.com/in/harisekhon
|
|
--
|
|
|
|
-- PostgreSQL % of times indexes are used on tables by table size descending (might want to tweak to list by % descending)
|
|
--
|
|
-- If not near 99% index usage on tables > 10,000 rows, consider adding an index to match your query patterns (CREATE INDEX CONCURRENTLY in prod to avoid locking table)
|
|
|
|
SELECT
|
|
relname AS table,
|
|
idx_scan / (seq_scan + idx_scan) * 100 AS percent_of_times_index_used,
|
|
n_live_tup AS rows_in_table
|
|
FROM
|
|
pg_stat_user_tables
|
|
WHERE
|
|
seq_scan + idx_scan > 0
|
|
ORDER BY
|
|
n_live_tup,
|
|
percent_of_times_index_used
|
|
DESC;
|