2010-10-12 51 views
2

我有一個生產CakePHP站點,我需要解決一個緩慢的SQL查詢。我想訪問CakePHP用實際的SQL查詢,執行時間等創建的偉大的表,但是我無法將生產站點上的DEBUG級別設置爲3。如何捕獲在CakePHP頁面中運行的SQL查詢?

我想這是一個簡單的,但我似乎無法弄清楚如何我可以得到這個信息的特定腳本和做一些事情,就像將其保存到日誌文件。

回答

2

蛋糕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... 
} 
+0

謝謝,我現在在1.2,但最終會移動。 – Justin 2010-10-14 13:37:58

0

DebugKit是你的朋友。應該有適合於Cake 1.3,2.x和3.x的版本。它有一個漂亮的工具欄,顯示你所有的SQL查詢和運行每個查詢所花費的時間。

https://github.com/cakephp/debug_kit