{% extends 'silk/base/base.html' %} {% load silk_filters %} {% load silk_inclusion %} {% load silk_urls %} {% block pagetitle %}Silky - SQL - {% if silk_request %}{{ silk_request.path }}{% elif profile %}{{ profile.name|default:profile.func_name }}{% endif %}{% endblock %} {% block menu %} {% if profile %}{% profile_menu request profile silk_request %}{% elif silk_request %}{% request_menu request silk_request %}{% endif %} {% endblock %} {% block data %}
{% if silk_request and not profile %}

SQL

{{ silk_request.method }} {{ silk_request.path }} ran {{ silk_request.num_sql_queries }} quer{{ silk_request.num_sql_queries|pluralize:"y,ies" }} in {{ silk_request.time_spent_on_sql_queries|dur }} of {{ silk_request.time_taken|dur }}.

{% else %}

Queries

{{ profile.name|default:profile.func_name }} ran {{ items.paginator.count }} quer{{ items.paginator.count|pluralize:"y,ies" }} in {{ profile.time_spent_on_sql_queries|dur }}.

{% endif %}
{% if n_plus_one and n_plus_one.has_n_plus_one %}
{{ n_plus_one.groups|length }} repeated pattern{{ n_plus_one.groups|length|pluralize }} account for {{ n_plus_one.flagged_query_ids|length }} queries. Batch them with select_related() or prefetch_related(); the Overview tab suggests the fix.
{% for group in n_plus_one.groups %} {{ group.count }}× {{ group.representative.query|sql_type }} {{ group.representative.query|truncatechars:140 }} {{ group.total_time_taken|dur }} {% endfor %}
{% endif %} {% if items %}
{% for q in items %} {% sql_detail_url silk_request profile q as detail_url %} {% with at=q.offset_ms|offset %}{% endwith %} {% endfor %}
AtQueryJoinsTime
{{ at|default:"·" }} {{ q.query|sql_type }}{{ q.tables_involved|join:", "|default:"·" }}{% if n_plus_one_ids and q.pk in n_plus_one_ids %} repeated{% endif %}
{{ q.query|truncatechars:200 }}
{{ q.num_joins }}
{{ q.time_taken|dur }}
{% if items.paginator.num_pages > 1 %} {% endif %} {% else %}

No SQL queries.

This {% if profile %}block{% else %}request{% endif %} did not run any queries.

{% endif %}
{% endblock %}