enable ragel parser for comments, add additional sql diagnostic queries
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="body prose">
|
||||
<%= format_text(comment.body) %>
|
||||
<%= format_text(comment.body, :ragel => true) %>
|
||||
|
||||
<% if comment.updated_at - comment.created_at > 5.minutes %>
|
||||
<p class="info">Updated by <%= link_to_user comment.updater %> <%= time_ago_in_words_tagged(comment.updated_at) %></p>
|
||||
|
||||
@@ -93,6 +93,69 @@ ORDER BY
|
||||
n_live_tup DESC;
|
||||
|
||||
|
||||
-- index size/usage
|
||||
SELECT
|
||||
t.tablename,
|
||||
indexname,
|
||||
c.reltuples AS num_rows,
|
||||
pg_size_pretty(pg_relation_size(quote_ident(t.tablename)::text)) AS table_size,
|
||||
pg_size_pretty(pg_relation_size(quote_ident(indexrelname)::text)) AS index_size,
|
||||
CASE WHEN indisunique THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS UNIQUE,
|
||||
idx_scan AS number_of_scans,
|
||||
idx_tup_read AS tuples_read,
|
||||
idx_tup_fetch AS tuples_fetched
|
||||
FROM pg_tables t
|
||||
LEFT OUTER JOIN pg_class c ON t.tablename=c.relname
|
||||
LEFT OUTER JOIN
|
||||
( SELECT c.relname AS ctablename, ipg.relname AS indexname, x.indnatts AS number_of_columns, idx_scan, idx_tup_read, idx_tup_fetch, indexrelname, indisunique FROM pg_index x
|
||||
JOIN pg_class c ON c.oid = x.indrelid
|
||||
JOIN pg_class ipg ON ipg.oid = x.indexrelid
|
||||
JOIN pg_stat_all_indexes psai ON x.indexrelid = psai.indexrelid )
|
||||
AS foo
|
||||
ON t.tablename = foo.ctablename
|
||||
WHERE t.schemaname='public'
|
||||
ORDER BY 1,2;
|
||||
|
||||
|
||||
-- index summary
|
||||
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;
|
||||
|
||||
|
||||
-- sequential scans
|
||||
SELECT relname AS name,
|
||||
seq_scan as count
|
||||
|
||||
Reference in New Issue
Block a user