`
karvenlin
  • 浏览: 27955 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

如何使用SQL Profiler 性能分析器

阅读更多
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查询分析工具

    sqlprofiler-0.3 sql查询分析与工程集成,用于系统调试优化,带查询参数值,sql查询资源占用图形分析。

    AnjLab.SqlProfiler数据库跟踪

    SQL 事件探查器是从服务器捕获 Microsoft® SQL Server™ 2000 事件的工具。事件保存在一个跟踪文件中,可在以后对该文件进行分析,也可以在...SQL 事件探查器用于以下活动: 逐步分析有问题的查询以找到问题的原因。

    SqlServer2000性能工具Profiler.doc

    SqlServer2000性能工具Profiler. SQL Server Profiler 是图形化实时监视工具,能帮助系统管理员监视数据库和服务器的行为, 比如死锁的数量,致命的错误,跟踪Transact-SQL 语句和存储过程。可以把这些监视数据存入表...

    通过SQL Server Profiler来监视分析死锁

    NULL 博文链接:https://beijingwo2008.iteye.com/blog/1851542

    使用profiler测试Oracle PLSQL性能.zip

    Oracle存储过程和PL/SQL代码常常包含了多个子过程和SQL,对于单个的SQL,我们很容易分析他的执行效率,但是对于PL/SQL存储过程,我们如何分析它的执行效率、具体每一步的耗时情况呢?文档和脚本提供了profiler工具...

    linq to sql profiler 破解版

    linq to sql 日志分析工具 全名为linq to sql profiler 使用说明参考官方网站 请支持正版:http://l2sprof.com/

    Mysql课件教程 辅助日志分析工具SQLProfiler DBMonster的安装和配置 DBMonster命令示例-压数据

    JDBC SQL日志记录工具P6spy P6spy的安装、配置(以Jboss3.2为例) DBMonster的安装和配置 DBMonster命令示例-提取Schema 在以源码方式安装的MySQL系统环境下 MySQL数据库运行情况测试 cd sql-bench Per run-all-...

    qlkit2000(SQL2000查询分析器1MB版)

    只装置服务管理器的,无装置查询分析器的电脑使用方法:*打开sqlkit2000里面的isqlw.exe*打开界面和SQL2000里面的查询分析器一模一样*如果要事件查看器,自己打开SQLProfilesqlkit2000 SQL2000查询分析器和事件查看...

    SQL2000 查询分析器 事件探查器 绿色版

    想在只有MSDE的机器上使用〖查询分析器〗或〖事件探查器〗? 分离以下文件出来即可放在U盘带走,打上SP4补丁先。 〖查询分析器〗包含以下组件: [SQLQueryAnalyzer] howtosql.chi howtosql.chm isqlw.exe isqlw....

    Sqlserver性能调整

    很多客户偶尔会遇到SQL Server 数据库性能...我们提供了按部就班的指导,通过使用可用的工具例如SQL Server Profiler,System Monitor和在SQL Server 2005中新的Dynamic Management View来为一般的性能问题诊断和排错。

    SQLServer2008查询性能优化 2/2

    使用性能监视器、SQL Trace以及动态管理视图和函数建立性能基线 理解一般系统中发生瓶颈的地方。以及解决瓶颈的方法 识别常见性能问题以及对其快速处理的方法 实施修复甚至预防性能问题的T-SQL最佳实践 《SQL ...

    SQLServer2008查询性能优化 1/2

    使用性能监视器、SQL Trace以及动态管理视图和函数建立性能基线 理解一般系统中发生瓶颈的地方。以及解决瓶颈的方法 识别常见性能问题以及对其快速处理的方法 实施修复甚至预防性能问题的T-SQL最佳实践 《SQL ...

    SQL Server Profiler工具的应用

    IBM Rational Quantify是IBM Rational套件之一,是非常强大的系统性能分析工具.它可以统计出某段时间程序调用的所有函数的时间占用情况,可以看出程序调用了哪些函数.统计的粒度达到代码行级别,因此你甚至可以知道某行...

    SQL 事件查探器 用于查看SQL服务器的活动情况

    SQL 事件探查器是图形工具,使我们得以监视 Microsoft SQL Server实例中的事件。可以捕获有关每个事件的数据并 将其保存到文件或 SQL Server 表中供以后分析。 例如,我们可以对生产环境进行监视,了解执行速度太慢...

    SQLServer安全及性能优化

    使用工具Sql Server Profiler优化数据库的性能,减少资源的征用 SqlServer Profiler的功能 Sql Server Profiler的用法  定义跟踪  登录连接、失败和断开  Select、Insert、Update和Delete语句  SQL批处理...

    Microsoft Sqlserver 2000 查询分析器、事件探查器、osql、isql、bcp 绿色迷你便携版

    本客户端集合 基于 Sqlserver 2000 企业版 最新的 V8.0.2282 制作,绿色 便携 包含常用的客户端工具: bcp.exe isql.exe isqlw.exe ...运行:reg_isqlw.bat 即可使用查询分析器 其他程序无需注册即可使用

    sql 简版查询分析器

    sql 简版查询分析器,无需安装,直接打开使用

    MySQL性能分析工具profile使用教程

    分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。对于全局级别则作用于整个MySQL实例,而session级别紧影响当前...

    SQL-trace-profiler:使用 SQL(和外部表)分析 SQL 跟踪文件

    SQL 跟踪分析器 使用 SQL(和外部表)分析 SQL 跟踪文件

Global site tag (gtag.js) - Google Analytics