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