【问题标题】:Django - track down the code that generated slow queries in databaseDjango - 追踪在数据库中生成慢查询的代码
【发布时间】:2021-02-01 07:02:51
【问题描述】:

我将 Django 用于大型应用程序。在监控数据库 (Postgres) 时,我有时会看到写入了一些慢查询日志。

问题是如何追踪生成这些查询的代码。理想情况下,我想要这些日志的一些堆栈跟踪,但想知道是否有其他最佳实践,或者其他工具。

它在生产中,所以 DEBUG 设置为 False,所以 Django 本身不跟踪查询的速度。

P.S - 我在某处看到有人建议将 SQL 注释添加到 SQL 查询本身。不幸的是,这在 Django 中似乎并不普遍,而且它还需要我更新生成查询的每一个代码。

【问题讨论】:

标签: django postgresql


【解决方案1】:

有很多工具可以检查监控在 Django 应用程序中执行的 SQL 查询。

  1. Django Debug Toolbar

    Django 调试工具栏是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息。

  2. Django Silk

    Django Silk 是 Django 框架的实时分析和检查工具。 Silk 拦截并存储 HTTP 请求和数据库查询,然后将它们呈现在用户界面中以供进一步检查

  3. Elastic APM

    使用 Elastic APM,监控、检测和诊断复杂的应用程序性能问题,以维持预期的服务水平。

    这更像是一个生产设置,您可以借助开箱即用的功能非常轻松地可视化矩阵。他们确实有一个APM setup section for Django

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2015-10-10
    • 2023-03-19
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多