Created
June 11, 2018 09:07
-
-
Save khusnetdinov/325afcc1f6de33b0c35c2389019fceea to your computer and use it in GitHub Desktop.
Summary
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT | |
pg_class.relname, | |
pg_size_pretty(pg_class.reltuples::BIGINT) AS rows_in_bytes, | |
pg_class.reltuples AS num_rows, | |
COUNT(indexname) AS number_of_indexes, | |
CASE WHEN x.is_unique = 1 THEN 'Y' | |
ELSE 'N' | |
END AS UNIQUE, | |
SUM(CASE WHEN number_of_columns = 1 THEN 1 | |
ELSE 0 | |
END) AS single_column, | |
SUM(CASE WHEN number_of_columns IS NULL THEN 0 | |
WHEN number_of_columns = 1 THEN 0 | |
ELSE 1 | |
END) AS multi_column | |
FROM pg_namespace | |
LEFT OUTER JOIN pg_class ON pg_namespace.oid = pg_class.relnamespace | |
LEFT OUTER JOIN | |
(SELECT indrelid, | |
MAX(CAST(indisunique AS INTEGER)) AS is_unique | |
FROM pg_index | |
GROUP BY indrelid) x | |
ON pg_class.oid = x.indrelid | |
LEFT OUTER JOIN | |
( SELECT c.relname AS ctablename, ipg.relname AS indexname, x.indnatts AS number_of_columns FROM pg_index x | |
JOIN pg_class c ON c.oid = x.indrelid | |
JOIN pg_class ipg ON ipg.oid = x.indexrelid ) | |
AS foo | |
ON pg_class.relname = foo.ctablename | |
WHERE | |
pg_namespace.nspname='public' | |
AND pg_class.relkind = 'r' | |
GROUP BY pg_class.relname, pg_class.reltuples, x.is_unique | |
ORDER BY 2; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment