2014-01-22 82 views
0

我有一個sqlalchemy應用程序。某些操作會導致許多SQL查詢被執行。有沒有一種方法可以從sqlalchemy獲得會話期間已經完成的SQL查詢的信息?如何獲取SQL查詢的數量?

我想記錄這些信息以及關於操作的其他信息,這樣我以後就可以查看日誌並查找有太多查詢的操作。

回答

1

SQLAlchemy的記錄與logging模塊的所有查詢,但你需要配置你的記錄設置來增加日誌記錄級別爲logging.INFO看到查詢:

import logging 

logging.basicConfig() 
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO) 

Configuring Logging文檔,以及logging module documentation。將所有sqlalchemy.engine輸出重定向到一個單獨的目的地是完全可能的,例如,分析哪些查詢更頻繁地運行。

+0

也可以聽[[before_cursor_execute]](http://docs.sqlalchemy.org/en/rel_0_9/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute)事件,並收集統計信息。但是,我想這個「定量」分析本身並不會有用,我寧願看看究竟在哪個點執行,然後分析原因。 – van