Packages
Ecto PostgreSQL database performance insights. Locks, index usage, buffer cache hit ratios, vacuum stats and more.
Current section
Files
Jump to
Current section
Files
lib/queries/calls.ex
defmodule EctoPSQLExtras.Calls do
@behaviour EctoPSQLExtras
def info do
%{
title: "10 queries that have the highest frequency of execution",
limit: 10,
order_by: [calls: :desc],
columns: [
%{name: :query, type: :string},
%{name: :exec_time, type: :interval},
%{name: :prop_exec_time, type: :percent},
%{name: :calls, type: :integer},
%{name: :sync_io_time, type: :interval}
]
}
end
def query do
"""
/* 10 queries that have the highest frequency of execution */
SELECT query AS query,
interval '1 millisecond' * total_exec_time AS exec_time,
(total_exec_time/sum(total_exec_time) OVER()) AS exec_time_ratio,
calls,
interval '1 millisecond' * (blk_read_time + blk_write_time) AS sync_io_time
FROM pg_stat_statements WHERE userid = (SELECT usesysid FROM pg_user WHERE usename = current_user LIMIT 1)
ORDER BY calls DESC
LIMIT 10;
"""
end
end