0
我有一個sqlalchemy應用程序。某些操作會導致許多SQL查詢被執行。有沒有一種方法可以從sqlalchemy獲得會話期間已經完成的SQL查詢的信息?如何獲取SQL查詢的數量?
我想記錄這些信息以及關於操作的其他信息,這樣我以後就可以查看日誌並查找有太多查詢的操作。
我有一個sqlalchemy應用程序。某些操作會導致許多SQL查詢被執行。有沒有一種方法可以從sqlalchemy獲得會話期間已經完成的SQL查詢的信息?如何獲取SQL查詢的數量?
我想記錄這些信息以及關於操作的其他信息,這樣我以後就可以查看日誌並查找有太多查詢的操作。
SQLAlchemy的記錄與logging
模塊的所有查詢,但你需要配置你的記錄設置來增加日誌記錄級別爲logging.INFO
看到查詢:
import logging
logging.basicConfig()
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
見Configuring Logging文檔,以及logging
module documentation。將所有sqlalchemy.engine
輸出重定向到一個單獨的目的地是完全可能的,例如,分析哪些查詢更頻繁地運行。
也可以聽[[before_cursor_execute]](http://docs.sqlalchemy.org/en/rel_0_9/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute)事件,並收集統計信息。但是,我想這個「定量」分析本身並不會有用,我寧願看看究竟在哪個點執行,然後分析原因。 – van