zoukankan      html  css  js  c++  java
  • python SQLAlchemy 查询慢sql

    参考博客: https://www.cnblogs.com/1a2a/p/10408516.html

    1.config文件添加如下配置

    1 FLASKY_DB_QUERY_TIMEOUT = 0.1  # 设置sql执行超时时间 0.1s
    2 SQLALCHEMY_RECORD_QUERIES = True  # 启用慢查询记录功能

    2.public文件添加如下代码,可将 打印的语句个性化输出

     1 from flask_sqlalchemy get_debug_queries
     2 
     3 @app.after_request
     4 def after_request(response):
     5     for query in get_debug_queries():
     6         if query.duration >= app.config['FLASKY_DB_QUERY_TIMEOUT']:
     7              # query.statement:查询的sql
     8              # query.duration: 耗时 
     9              # 打印超时sql和时间
    10              print('----慢sql-----	
    sql:	
     {sql} 	
    耗时:{duration}'.format(sql=query.statement,duration=query.duration)
    11     return response

    完整的 public文件代码如下:

     1 from flask import Flask
     2 from flask_sqlalchemy import SQLAlchemy,get_debug_queries
     3 import config
     4 
     5 app = Flask(__name__)
     6 app.config.from_object(config)
     7 db = SQLAlchemy(app)
     8 
     9 @app.after_request
    10 def after_request(response):
    11     for query in get_debug_queries():
    12         if query.duration >= app.config['FLASKY_DB_QUERY_TIMEOUT']:
    13             # query.statement:查询的sql
    14             # query.duration: 耗时 
    15             # 打印超时sql和时间
    16             print('----慢sql-----	
    sql:	
     {sql} 
    	耗时:{duration}'.format(sql=query.statement,duration=query.duration)
    17     return response

    效果如图:

  • 相关阅读:
    C#枚举中使用Flags特性
    WPF 设置输入只能英文
    PHP array_merge_recursive() 函数
    PHP array_merge() 函数
    PHP array_map() 函数
    PHP array_keys() 函数
    PHP array_key_exists() 函数
    [HNOI2016]网络
    WPF 设置输入只能英文
    WPF 设置输入只能英文
  • 原文地址:https://www.cnblogs.com/whycai/p/12831544.html
Copyright © 2011-2022 走看看