我有一個生產CakePHP站點,我需要解決一個緩慢的SQL查詢。我想訪問CakePHP用實際的SQL查詢,執行時間等創建的偉大的表,但是我無法將生產站點上的DEBUG級別設置爲3。如何捕獲在CakePHP頁面中運行的SQL查詢?
我想這是一個簡單的,但我似乎無法弄清楚如何我可以得到這個信息的特定腳本和做一些事情,就像將其保存到日誌文件。
我有一個生產CakePHP站點,我需要解決一個緩慢的SQL查詢。我想訪問CakePHP用實際的SQL查詢,執行時間等創建的偉大的表,但是我無法將生產站點上的DEBUG級別設置爲3。如何捕獲在CakePHP頁面中運行的SQL查詢?
我想這是一個簡單的,但我似乎無法弄清楚如何我可以得到這個信息的特定腳本和做一些事情,就像將其保存到日誌文件。
This文章將幫助你。
如果您有權訪問MySQL配置文件,則可以通過enabling log-slow-queries setting記錄緩慢的查詢。
蛋糕1.3(不知道這工作在1.2),看看/cake/libs/view/elements/sql_dump.ctp
並使其適應您的需求:
$sources = ConnectionManager::sourceList();
foreach ($sources as $source) {
$db =& ConnectionManager::getDataSource($source);
if (!$db->isInterfaceSupported('getLog')) {
continue;
}
$log = $db->getLog();
// examine $log...
}
謝謝,我現在在1.2,但最終會移動。 – Justin 2010-10-14 13:37:58
DebugKit是你的朋友。應該有適合於Cake 1.3,2.x和3.x的版本。它有一個漂亮的工具欄,顯示你所有的SQL查詢和運行每個查詢所花費的時間。
好文章。我想避免慢查詢日誌,但哦。 – Justin 2010-10-12 22:11:38