Zend_Db_Profiler 將 SQL 徹底剖析
維護舊的 Model 的既有 Function 幾乎都不會有大問題,但是只要寫新的 Model 就感覺欄位名稱都會打錯,不然就是回傳值不確定是不是 Controller 要的。說實在的,就是分析和能力的不足....(慚愧)。因此會在呼叫 Model 的函式之後,將組合或是欲呈現的 SQL 以字串呈現出來檢查看看。
目前的做法
在 /application/config/application.ini 中加入以下
事前準備
Zend_Db_Profiler 的作法
並且在 return $db 之前加入
在 Firebug 中的 console 會出現 All DB Queries 字眼,點下去之後,會出現每一個 SQL 查詢以及回傳,更棒的是它有執行時間,應該是讓有最佳化需求的人做參考吧。
Reference
[1.] Zend framework: Logging Database Queries to FireBug
[2.] Programmer's Reference Guide::Zend_Db_Profiler
[3.] ZF : DB Profiling with Firebug
目前的做法
在 /application/config/application.ini 中加入以下
resources.log.stream.filterParams.priority = 7 resources.frontController.params.displayExceptions = 1 resources.log.firebug.writerName = "Firebug" resources.log.firebug.filterName = "Priority" resources.log.firebug.filterParams.priority = 7因此,可以利用 Firebug 來做 Log 紀錄檢視。不小心 Google 搜尋到 Firebug 在 Zend 方面亦有其他應用,如 [1.], [2.], [3.] 所示。
事前準備
- 安裝 Firefox
- 安裝 Firebug 外掛
- 安裝 FirePHP 外掛
Zend_Db_Profiler 的作法
- 透過 Bootstrap.php 設定
db.params.profiler.enabled = true db.params.profiler.class = Zend_Db_Profiler_Firebug
並且在 return $db 之前加入
$profiler = new Zend_Db_Profiler_Firebug('All DB Queries'); $profiler->setEnabled(true); $db->setProfiler($profiler);
在 Firebug 中的 console 會出現 All DB Queries 字眼,點下去之後,會出現每一個 SQL 查詢以及回傳,更棒的是它有執行時間,應該是讓有最佳化需求的人做參考吧。
Reference
[1.] Zend framework: Logging Database Queries to FireBug
[2.] Programmer's Reference Guide::Zend_Db_Profiler
[3.] ZF : DB Profiling with Firebug
Comments
Post a Comment