{% extends "performance/dashboard/base.html" %} {% block title %}Database Queries · PerfMonitor{% endblock %} {% block page_title %}Database Queries{% endblock %} {% block content %}

Database Queries

Backend optimization · N+1 detection · DB bottleneck analysis · Source: APIRequestLog

{% if kpi_avg_dbq > 10 %}
Avg {{ kpi_avg_dbq }} queries/request — high query count indicates possible N+1 patterns.
{% endif %}
Top DB Offenders by Total Time Contribution
Ranked by est. total DB time (volume × avg) — biggest optimization wins first
Endpoint DB Cost
Amber = N+1 risk · red = DB bottleneck
{% for r in endpoint_db_cost %} {% endfor %}
EndpointAvg QueriesMax QueriesAvg DB msMax DB ms% in DB
{{ r.endpoint }} {{ r.avg_queries | round(1) }} {{ r.max_queries }} {{ r.avg_db_ms | round | int }} {{ r.max_db_ms }} {{ r.db_pct }}%
{% if dbc_total_pages > 1 %} {% endif %}
Query Count Distribution
Histogram · bimodal = N+1 signal
DB Time vs Response Time
Scatter · red = DB is bottleneck
Slow Request Patterns
Requests with response_time_ms ≥ 500ms
{% for r in slow_requests %} {% endfor %}
EndpointResp msDB QueriesDB ms% DBConcurrent
{{ r.endpoint }} {{ r.response_time_ms }} {{ r.db_query_count }} {{ r.db_time_ms }} {{ r.db_pct }}% {{ r.concurrent_requests }}
{% endblock %}