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-----\t\nsql:\t\n {sql} \t\n耗时:{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-----\t\nsql:\t\n {sql} \n\t耗时:{duration}'.format(sql=query.statement,duration=query.duration)
17     return response

 

 

效果如图:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM