gpt4 book ai didi

django - 通过 psycopg2 连接执行的查询数

转载 作者:行者123 更新时间:2023-11-29 11:29:12 25 4
gpt4 key购买 nike

我想知道在 psycopg2 连接上执行的 sql 查询的数量。

有没有办法得到这个数字?

如果一个 http 请求产生了太多语句,我会发出警告。

我正在运行一个 Django 应用程序。如果 DEBUG 为真,那么我有 connection.queries .但是我想从生产服务器上获取这个值

更新

我想要来自生产环境的数字(统计数据)。这个问题不是关于调试特定的 http 请求。

最佳答案

看看django-silk .它是一种分析工具,用于记录响应时间和查询数量等指标。

如果你想推出自己的解决方案并且你正在使用 Django 2.0,你可以创建一个带有 connection wrapper 的中间件。 .该文档甚至展示了一个 QueryLogger 类:

import time
from django.db import connection


class QueryLogger:
def __init__(self):
self.queries = []

def __call__(self, execute, sql, params, many, context):
current_query = {'sql': sql, 'params': params, 'many': many}
start = time.time()
try:
result = execute(sql, params, many, context)
except Exception as e:
current_query['status'] = 'error'
current_query['exception'] = e
raise
else:
current_query['status'] = 'ok'
return result
finally:
duration = time.time() - start
current_query['duration'] = duration
self.queries.append(current_query)


class QueryLogginMiddleware:
def __init__(self, get_response):
self.get_response = get_response

def __call__(self, request):
ql = QueryLogger()
with connection.execute_wrapper(ql):
response = self.get_response(request)

# do something with ql.queries here

return response

关于django - 通过 psycopg2 连接执行的查询数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50989315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com