mysql 的 sql 性能分析器主要用途是显示 sql 执行的整个过程中各项资源的使用情况。分析器可以更好的展示出不良 SQL 的性能问题所在。
下面我们举例介绍一下 MySQL SQL Profiler 的使用方法:
首先,开启 MySQL SQL Profiler
mysql> show variables like '%profiling%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| have_profiling | YES |
| profiling | OFF |
| profiling_history_size | 15 |
+------------------------+-------+
3 rows in set (0.23 sec)
mysql> set profiling=1;
Query OK, 0 rows affected (0.00 sec)
默认情况下 profiling 的值为 0 表示 MySQL SQL Profiler 处于 OFF 状态,开启 SQL 性能分析器后 profiling 的值为 1.
通过 sql 性能分析器,我们来对比一下 下列语句前后 2 次执行过程的差异,对我们了解 sql 的详细执行过程是非常有帮助的。
mysql> create table t_engines select * from t_engines1;
Query OK, 57344 rows affected (0.10 sec)
Records: 57344 Duplicates: 0 Warnings: 0
mysql> select count(*) from t_engines;
+----------+
| count(*) |
+----------+
| 57344 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from t_engines;
+----------+
| count(*) |
+----------+
| 57344 |
+----------+
1 row in set (0.00 sec)
mysql> SHOW PROFILES;
+----------+------------+-------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-------------------------------------------------+
| 26 | 0.10213775 | create table t_engines select * from t_engines1 |
| 27 | 0.00032775 | select count(*) from t_engines |
| 28 | 0.00003850 | select count(*) from t_engines |
+----------+------------+-------------------------------------------------+
15 rows in set (0.01 sec)
mysql> SHOW PROFILE FOR QUERY 27;
+--------------------------------+------------+
| Status | Duration |
+--------------------------------+------------+
| (initialization) | 0.00000425 |
| checking query cache for query | 0.00004050 |
| checking permissions | 0.00001050 |
| Opening tables | 0.00018250 |
| System lock | 0.00000450 |
| Table lock | 0.00001775 |
| init | 0.00001075 |
| optimizing | 0.00000550 |
| executing | 0.00002775 |
| end | 0.00000450 |
| query end | 0.00000325 |
| storing result in query cache | 0.00000400 |
| freeing items | 0.00000400 |
| closing tables | 0.00000500 |
| logging slow query | 0.00000300 |
+--------------------------------+------------+
15 rows in set (0.00 sec)
mysql> SHOW PROFILE FOR QUERY 28;
+-------------------------------------+------------+
| Status | Duration |
+-------------------------------------+------------+
| (initialization) | 0.00000350 |
| checking query cache for query | 0.00000750 |
| checking privileges on cached query | 0.00000500 |
| checking permissions | 0.00000525 |
| sending cached result to client | 0.00001275 |
| logging slow query | 0.00000450 |
+-------------------------------------+------------+
6 rows in set (0.00 sec)
mysql> SELECT sum( FORMAT(DURATION, 6)) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID =27 ORDER BY SEQ;
+----------+
| DURATION |
+----------+
| 0.000326 |
+----------+
1 row in set (0.00 sec)
mysql> SELECT sum( FORMAT(DURATION, 6)) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID =28 ORDER BY SEQ;
+----------+
| DURATION |
+----------+
| 0.000039 |
+----------+
1 row in set (0.00 sec)
从上面的例子中我们可以清晰的看出 2 次执行 count 语句的差别, SHOW PROFILE FOR QUERY 27 展现的是第一次 count 统计的执行过程,包含了 Opening tables 、 Table lock 等操作 。而 SHOW PROFILE FOR QUERY 28 展示了第二次 count 统计的执行过程 , 第二次 count 直接从查询缓存中返回 count 统计结果,通过对比 2 次统计的总执行时间发现,缓存读的速度接近物理读的 10 倍。通过使用 SQL 性能分析器可以帮助我们对一些比较难以确定性能问题的 SQL 进行诊断,找出问题根源。
转载 http://blog.csdn.net/ylqmf/article/details/6541625
分享到:
相关推荐
sqlprofiler-0.3 sql查询分析与工程集成,用于系统调试优化,带查询参数值,sql查询资源占用图形分析。
SQL 事件探查器是从服务器捕获 Microsoft® SQL Server™ 2000 事件的工具。事件保存在一个跟踪文件中,可在以后对该文件进行分析,也可以在...SQL 事件探查器用于以下活动: 逐步分析有问题的查询以找到问题的原因。
SqlServer2000性能工具Profiler. SQL Server Profiler 是图形化实时监视工具,能帮助系统管理员监视数据库和服务器的行为, 比如死锁的数量,致命的错误,跟踪Transact-SQL 语句和存储过程。可以把这些监视数据存入表...
NULL 博文链接:https://beijingwo2008.iteye.com/blog/1851542
Oracle存储过程和PL/SQL代码常常包含了多个子过程和SQL,对于单个的SQL,我们很容易分析他的执行效率,但是对于PL/SQL存储过程,我们如何分析它的执行效率、具体每一步的耗时情况呢?文档和脚本提供了profiler工具...
linq to sql 日志分析工具 全名为linq to sql profiler 使用说明参考官方网站 请支持正版:http://l2sprof.com/
JDBC SQL日志记录工具P6spy P6spy的安装、配置(以Jboss3.2为例) DBMonster的安装和配置 DBMonster命令示例-提取Schema 在以源码方式安装的MySQL系统环境下 MySQL数据库运行情况测试 cd sql-bench Per run-all-...
只装置服务管理器的,无装置查询分析器的电脑使用方法:*打开sqlkit2000里面的isqlw.exe*打开界面和SQL2000里面的查询分析器一模一样*如果要事件查看器,自己打开SQLProfilesqlkit2000 SQL2000查询分析器和事件查看...
想在只有MSDE的机器上使用〖查询分析器〗或〖事件探查器〗? 分离以下文件出来即可放在U盘带走,打上SP4补丁先。 〖查询分析器〗包含以下组件: [SQLQueryAnalyzer] howtosql.chi howtosql.chm isqlw.exe isqlw....
很多客户偶尔会遇到SQL Server 数据库性能...我们提供了按部就班的指导,通过使用可用的工具例如SQL Server Profiler,System Monitor和在SQL Server 2005中新的Dynamic Management View来为一般的性能问题诊断和排错。
使用性能监视器、SQL Trace以及动态管理视图和函数建立性能基线 理解一般系统中发生瓶颈的地方。以及解决瓶颈的方法 识别常见性能问题以及对其快速处理的方法 实施修复甚至预防性能问题的T-SQL最佳实践 《SQL ...
使用性能监视器、SQL Trace以及动态管理视图和函数建立性能基线 理解一般系统中发生瓶颈的地方。以及解决瓶颈的方法 识别常见性能问题以及对其快速处理的方法 实施修复甚至预防性能问题的T-SQL最佳实践 《SQL ...
IBM Rational Quantify是IBM Rational套件之一,是非常强大的系统性能分析工具.它可以统计出某段时间程序调用的所有函数的时间占用情况,可以看出程序调用了哪些函数.统计的粒度达到代码行级别,因此你甚至可以知道某行...
SQL 事件探查器是图形工具,使我们得以监视 Microsoft SQL Server实例中的事件。可以捕获有关每个事件的数据并 将其保存到文件或 SQL Server 表中供以后分析。 例如,我们可以对生产环境进行监视,了解执行速度太慢...
使用工具Sql Server Profiler优化数据库的性能,减少资源的征用 SqlServer Profiler的功能 Sql Server Profiler的用法 定义跟踪 登录连接、失败和断开 Select、Insert、Update和Delete语句 SQL批处理...
本客户端集合 基于 Sqlserver 2000 企业版 最新的 V8.0.2282 制作,绿色 便携 包含常用的客户端工具: bcp.exe isql.exe isqlw.exe ...运行:reg_isqlw.bat 即可使用查询分析器 其他程序无需注册即可使用
sql 简版查询分析器,无需安装,直接打开使用
分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。对于全局级别则作用于整个MySQL实例,而session级别紧影响当前...
SQL 跟踪分析器 使用 SQL(和外部表)分析 SQL 跟踪文件