Recording Query Information
===========================

.. warning::
    This feature is intended for debugging only.

Flask-SQLAlchemy can record some information about every query that executes during a
request. This information can then be retrieved to aid in debugging performance. For
example, it can reveal that a relationship performed too many individual selects, or
reveal a query that took a long time.

To enable this feature, set :data:`.SQLALCHEMY_RECORD_QUERIES` to ``True`` in the Flask
app config. Use :func:`.get_recorded_queries` to get a list of query info objects. Each
object has the following attributes:

``statement``
    The string of SQL generated by SQLAlchemy with parameter placeholders.
``parameters``
    The parameters sent with the SQL statement.
``start_time`` / ``end_time``
    Timing info about when the query started execution and when the results where
    returned. Accuracy and value depends on the operating system.
``duration``
    The time the query took in seconds.
``location``
    A string description of where in your application code the query was executed. This
    may be unknown in certain cases.
