Zend framework调试查看sql
更新时间:2023-10-22 06:06:01 阅读量: 综合文库 文档下载
- zendaya推荐度:
- 相关推荐
Zend framework调试查看sql执行
调试查看sql执行 (2008-12-9) 1.model文件
$this->_db = Zend_Registry::get('db'); $obj_profiler = $this->_db->getProfiler(); var_dump($obj_profiler);
2.controller文件
$db = Zend_Registry::get('db');
$db->getProfiler()->setEnabled(true); $profiler = $db->getProfiler(); var_dump($profiler);
3.zend文件 (推荐)
在Zend_Db_Adapter_Abstract的query方法里面打印,任何sql都经过这里
4.mysql底层
a.通过日志查看mysql正在执行的SQL语句 在mysql的配置文件 my.ini 中最后添加 log=d:/mysql/log/log.txt 重启mysql
可以记录所有的mysql执行的sql语句
b.show processlist
a.进入 mysql/bin 目录下输入 mysqladmin processlist; b.启动 mysql ,输入 show processlist;
出结果的字段解释中可以分析执行了的sql语句类型
$db->getProfiler()->setEnabled(false); $db->getProfiler()->setEnabled(true);
$profiler = $db->getProfiler();
$query = $profiler->getLastQueryProfile(); $query->getQuery();
$query->getElapsedSecs();
$totalTime = $profiler->getTotalElapsedSecs(); $queryCount = $profiler->getTotalNumQueries();
$profiler->setFilterElapsedSecs(5); $profiler->setFilterElapsedSecs(null);
$profiler->setFilterQueryType(Zend_Db_Profiler::SELECT);
$profiler->setFilterQueryType(Zend_Db_Profiler::SELECT | Zend_Db_Profiler::INSERT | Zend_Db_Profiler::UPDATE);
$profiler->setFilterQueryType(Zend_Db_Profiler::DELETE); $profiler->setFilterQueryType(null);
$profiles = $profiler->getQueryProfiles(Zend_Db_Profiler::SELECT); $profiles = $profiler->getQueryProfiles(Zend_Db_Profiler::SELECT | Zend_Db_Profiler::INSERT | Zend_Db_Profiler::UPDATE);
$profiles = $profiler->getQueryProfiles(Zend_Db_Profiler::DELETE);
$profiler = new Zend_Db_Profiler_Firebug('All DB Queries'); $profiler->setEnabled(true); $db->setProfiler($profiler)
提供记录、分析数据库操作的功能,帮助调试和检查性能问题 可以打印sql,执行时间,分析性能问题 设置
// turn off profiler:
$db->getProfiler()->setEnabled(false);
// turn on profiler:
$db->getProfiler()->setEnabled(true); 使用
$profiler = $db->getProfiler();
$query = $profiler->getLastQueryProfile(); echo $query->getQuery();
$totalTime = $profiler->getTotalElapsedSecs(); $queryCount = $profiler->getTotalNumQueries(); $longestTime = 0; $longestQuery = null;
foreach ($profiler->getQueryProfiles() as $query) { if ($query->getElapsedSecs() > $longestTime) { $longestTime = $query->getElapsedSecs(); $longestQuery = $query->getQuery();
} }
echo 'Executed ' . $queryCount . ' queries in ' . $totalTime . ' seconds' . \
echo 'Average query length: ' . $totalTime / $queryCount . ' seconds' . \
echo 'Queries per second: ' . $queryCount / $totalTime . \ echo 'Longest query length: ' . $longestTime . \ echo \
方法
getTotalNumQueries() returns the total number of queries that have been profiled.
getTotalElapsedSecs() returns the total number of seconds elapsed for all profiled queries.
getQueryProfiles() returns an array of all query profiles.
getLastQueryProfile() returns the last (most recent) query profile, regardless of whether or not the query has finished (if it hasn't, the end time will be null)
clear() clears any past query profiles from the stack.
getQuery() returns the SQL text of the query.
getQueryParams() returns an array of parameter values used when executing a prepared query.
getElapsedSecs() returns the number of seconds the query ran.
高级用法
// Only profile queries that take at least 5 seconds: $profiler->setFilterElapsedSecs(5);
// Profile all queries regardless of length: $profiler->setFilterElapsedSecs(null);
// profile only SELECT queries
$profiler->setFilterQueryType(Zend_Db_Profiler::SELECT);
// profile SELECT, INSERT, and UPDATE queries
$profiler->setFilterQueryType(Zend_Db_Profiler::SELECT | Zend_Db_Profiler::INSERT | Zend_Db_Profiler::UPDATE);
// profile DELETE queries
$profiler->setFilterQueryType(Zend_Db_Profiler::DELETE);
// Remove all filters
$profiler->setFilterQueryType(null);
// Retrieve only SELECT query profiles
$profiles = $profiler->getQueryProfiles(Zend_Db_Profiler::SELECT);
// Retrieve only SELECT, INSERT, and UPDATE query profiles
$profiles = $profiler->getQueryProfiles(Zend_Db_Profiler::SELECT | Zend_Db_Profiler::INSERT | Zend_Db_Profiler::UPDATE);
// Retrieve DELETE query profiles
$profiles = $profiler->getQueryProfiles(Zend_Db_Profiler::DELETE);
Profiling with Firebug 结合firebug调试
// In your bootstrap file
$profiler = new Zend_Db_Profiler_Firebug('All DB Queries'); $profiler->setEnabled(true);
// Attach the profiler to your db adapter $db->setProfiler($profiler)
// Dispatch your front controller
// All DB queries in your model, view and controller // files will now be profiled and sent to Firebug
正在阅读:
六年级上册语文第六单元练习卷02-06
湖北省正地厅级干部简历02-02
2018-2024年中国咽喉用药市场行业深度调研研究报告(目录) - 图文11-26
业主公约(二)05-27
某项目混凝土结构工程监理实施细则09-03
Servlet面试题10-14
- 1A Framework for Automatic Adaptation of Tunable Distributed
- 2测试结果试卷查看
- 3Open Framework for Collaborative Model Based Engineering
- 4A Framework for Automatic Adaptation of Tunable Distributed Applications
- 5Android NFC framework introduction and develop guide
- 6Aviation human factors a framework for the new millennium
- 7Chromatic framework for vision in bad weather
- 8教你怎么查看电脑配置
- 9内存取证工具Volatility - Framework - 图文
- 10内存取证工具Volatility - Framework - 图文
- 冀教版版五年级科学下册复习资料
- 微生物学复习提纲
- 2013—2014学年小学第二学期教研组工作总结
- 国有土地转让委托服务合同协议范本模板
- 我的固废说明书
- 企业管理诊断报告格式
- 东鼎雅苑施工组织设计
- 谈谈如何做好基层党支部书记工作
- 浮梁县环保局市级文明单位创建工作汇报
- 管理学基础知识
- 大学物理实验报告23 - PN结温度传感器特性1
- 计算机网络实践
- 酒桌上这四种情况下要坐牢,千万别不当回事……
- 国家康居示范工程建设技术要点
- 中国贴布行业市场调查研究报告(目录) - 图文
- 新课标下如何在高中物理教学中培养学生的创新能力初探
- 营养师冬季养生食谱每日一练(7月4日)
- 关注江西2017年第3期药品质量公告
- 建设海绵城市专题习题汇总
- 10万吨年环保净水剂建设项目报告书(2).pdf - 图文
- 调试
- framework
- 查看
- Zend
- sql
- 汽车四轮驱动技术论文
- 播音主持自备稿件二十篇(1)
- RBS2000复习题(全)
- 南邮2013MATLAB数学实验答案
- 微机原理与接口技术作业答案
- 判断题
- 中科院三亚深海科学与工程研究所2016年考研招生简章
- 二组份合金体系相图的绘制
- 铁岭市维修基金管理办法
- 一级BOSS和业务管理平台(业务平台)接口规范 - 图文
- 旅游项目服务任务书
- 2018高考浙江(学考)语文一轮复习讲义: 第1部分 9《物种起源》绪论
- 北师大版四上神奇的计算工具
- 药用植物学多套合集 - 图文
- 最新北师版五年级语文下册第三单元测试题及答案2套
- 2012年暑假总动员高中语文 林黛玉进贾府 苏教版必修2
- 撞单判定
- 万华MDI环评
- matlab在信号与系统中的应用实验
- 安全标准化开展工作动员大会会议纪要