分析语句执行步骤并对排出耗时比较多的语句

mysql>set profiling=1;

mysql>show profiles;
mysql> set @query_id=6;
Query OK, 0 rows affected (0.00 sec)

mysql> select state,sum(duration) as total_R,round(100*sum(duration)/(select sum(duration) from information_schema.profiling where [email protected]_id),2) as Pct_R,count(*) as Calls,sum(DURATION)/count(*) as "R/Call" from information_schema.profiling where [email protected]_id group by state order by Total_R DESC;
+----------------------+----------+-------+-------+--------------+
| state | total_R | Pct_R | Calls | R/Call |
+----------------------+----------+-------+-------+--------------+
| Sending data | 0.026548 | 44.76 | 1 | 0.0265480000 |
| init | 0.025457 | 42.92 | 1 | 0.0254570000 |
| System lock | 0.005633 | 9.50 | 1 | 0.0056330000 |
| query end | 0.001312 | 2.21 | 1 | 0.0013120000 |
| freeing items | 0.000155 | 0.26 | 1 | 0.0001550000 |
| starting | 0.000076 | 0.13 | 1 | 0.0000760000 |
| Opening tables | 0.000029 | 0.05 | 1 | 0.0000290000 |
| statistics | 0.000019 | 0.03 | 1 | 0.0000190000 |
| cleaning up | 0.000019 | 0.03 | 1 | 0.0000190000 |
| closing tables | 0.000017 | 0.03 | 1 | 0.0000170000 |
| end | 0.000015 | 0.03 | 1 | 0.0000150000 |
| preparing | 0.000012 | 0.02 | 1 | 0.0000120000 |
| optimizing | 0.000011 | 0.02 | 1 | 0.0000110000 |
| checking permissions | 0.000011 | 0.02 | 1 | 0.0000110000 |
| executing | 0.000002 | 0.00 | 1 | 0.0000020000 |
+----------------------+----------+-------+-------+--------------+

分析语句执行步骤并对排出耗时比较多的语句

时间: 2024-10-28 07:10:57

分析语句执行步骤并对排出耗时比较多的语句的相关文章

mysql之sql语句执行过程

1.SQL语句执行过程  1.客户端发送一条sql查询语句给服务器;     2.服务器通过权限检查之后,首先会检查查询缓存,如果命中了缓存,则立即返回 存储在缓存中的结果,否则进入下一步;     3.服务器端进行sql解析,预处理,再由查询优化器根据该sql所涉及的数据表的统计信息进行计算,生成对应的执行计划;     4.mySQL根据查询优化器生成的执行计划,调用存储引擎的API来执行查询;      5.将查询结果返回给客户端;    2.SQL语句执行过程的注意事项 1.在执行查询时

mysql优化(三)–explain分析sql语句执行效率

mysql优化(三)–explain分析sql语句执行效率 mushu 发布于 11个月前 (06-04) 分类:Mysql 阅读(651) 评论(0) Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句. Explain语法:explain select … from … [where …] 例如:explain select * from

Mysql explain分析sql语句执行效率

mysql优化–explain分析sql语句执行效率 Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句. Explain语法:explain select - from - [where -] 例如: explain select * from news where id = 1; 输出: id select_type table type

Oracle执行SQL查询语句的步骤

sql语句的执行主要由用户进程与服务器进程来完成,其他的一些进程可能要辅助完成这一过程. 查询语句与其他的sql语句有所不同,如果一个查询语句执行成功,就要返回查询结果,而其他的sql语句只是返回执行成功或失败的信息. 查询语句的主要 SQL语句的执行主要由用户进程与服务器进程来完成,其他的一些进程可能要辅助完成这一些过程. 查询语句与其他的SQL语句有所不同,如果一个查询语句执行成功,就要返回查询结果,而其他的SQL语句只是返回执行成功或执行失败的信息. 查询语句的处理主要包括以下3个阶段:编

[转] Oracle sql 语句执行过程图文分析

[原文链接]  http://nvd11.blog.163.com/blog/static/200018312201301310585758/ [原文视频]  http://www.jiagulun.com/thread-2674-1-1.html 1. 数据库文件Oracle 数据库文件大概可分为3种,分别是:控制文件(control files): 存放数据库本身物理结构信息数据文件(data files): 存放数据库数据啦~日志文件(log files):  包括重做日志文件和归档日志文

MySQL的语句执行顺序

MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作.其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回.如果没有在语句中指定某一个子句,那么将会跳过相应的步骤. 下面我们来具体分析一下查询处理的每一个阶段 FORM: 对FROM的左边的表和右边的表计算笛卡尔积.产生虚表VT1 ON: 对虚表VT1进行ON筛选,只有那些符合<join-condit

mysql语句执行顺序

今天工作中遇到多个表关联查询需求,其实这种需求也不是今天才遇到,之前多多少少都有遇到过,个人非常不喜欢用关联查询,觉得会拖慢数据库,而且对关联查询的语句执行顺序有很多的不明白,但是今天这个需求要使用四个表关联查询,如果一个一个的查,觉得太麻烦,而且现在使用yii2.0的框架,通过hasone和joinwith函数可以很方便的关联查询,不用自己再去写sql查询语句.问题是解决了,但是对多个表的关联查询顺序的疑问却是一点也没有降低,于是就花点时间研究了下,发现一篇不错的文章.转载如下: MySQL的

SQL Sever 2008性能分析之执行计划

一直想找一些关于SQL语句性能调试的权威参考,但是有参考未必就能够做好调试 2的工作.我深信实践中得到的经验是最珍贵的,书本知识只是一个引导.本篇来源于<Inside Microsoft SQL Server 2008>,有经验的高手尽管拍砖把. 这个部分将讲解一些性能分析工具,这些性能分许主要关注在执行计划. 缓存执行计划  SQL Server 2008提供了一些服务器对象来分析执行计划Sys.dm_exec_cached_plans:    包含缓存的执行计划,每个执行计划对应一行.Sy

oracle学习笔记 SQL语句执行过程剖析讲课

oracle学习笔记 SQL语句执行过程剖析讲课 这节课通过讲述一条SQL语句进入数据库 和其在数据库中的整个的执行过程 把数据库里面的体系结构串一下. 让大家再进一步了解oracle数据库里面的各个进程.存储结构以及内存结构的关联关系. 首先来讲整个体系中有客户端.实例和数据库 数据库里有三类文件 控制文件ctl.数据文件dbf.日志文件log 实例中SGA有六大池子 第一大内存区shared pool即共享池 第二大内存区buffer cache 第三块是redo log 我们主要讲上面的三