通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extendedstatus 命令获得.SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果.以下几个参数对 Myisam 和 Innodb 存储引擎都计数:1. Com_select 执行 select 操作的次数,一次查询只累加 1:2. Com_insert 执行 insert 操作的次数,对于批量插入的 insert 操作,只累加一次:3. Com_u…
程序开发少不来SQL,基本都是基于SQL开发,程序仅仅起一个流程控制的作用.但是数据库本身存在许多内置的视图或者内置的表,如果打算研究SQL执行的效率已经SQL执行的历史记录,通过这些视图可以知道. SQLSERVER,Oracle,MySQL都有内置视图 http://www.cnblogs.com/net2012/archive/2013/01/21/2869636.html [总结] 查看v$sqlarea只能查看粗略的历史,因为很多SQL是共享的. 查看ASH也不全,因为这是采样数据,测…
-- 找出哪个数据库用户用什么程序在最近三天执行过delete或truncate table的操作 SELECT c.username, a.program, b.sql_text, b.command_type, a.sample_time FROM dba_hist_active_sess_history a JOIN dba_hist_sqltext b ON a.sql_id = b.sql_id JOIN dba_users c ON a.user_id = c.user_id AND…
但实际上 SQL 执行起来可能还是很慢,那么到底从哪里定位 SQL 查询慢的问题呢?是索引设计的问题?服务器参数配置的问题?还是需要增加缓存的问题呢?性能分析来入手分析,定位导致 SQL 执行慢的原因. 前面已经更新了总结核心的主要三点 如何使用慢查询日志查找执行慢的 SQL 语句? 如何使用 EXPLAIN 查看 SQL 执行计划? 如何使用 SHOW PROFILING 分析 SQL 执行步骤中的每一步的执行时间? 那讲了这这么多数据库服务器的优化分析的步骤是怎样的?中间有哪些需要注意的地方…
EXPLAIN 查看 SQL 执行计划.分析索引的效率: id:id 列数字越大越先执行: 如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询. select_type:查询的序列号 A:simple:表示不需要union操作或者不包含子查询的简单select查询.有连接查询时,外层的查询为simple,且只有一个 B:primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的select_type即为prim…
在SQL优化过程,有时候需要查看哪些SQL具有多个执行计划(Multiple Executions Plans for the same SQL statement),因为同一个SQL有多个执行计划一般意味着代码有问题或某些其它原因,例如,SQL语句使用绑定变量,但是绑定变量的类型或长度可能不一致会导致同一SQL出现不同执行计划. --查看数据库里面有多个执行计划的SQL语句的SQL_ID SELECT SQL_ID, COUNT(1) AS PLAN_NUM FROM V$SQL GROUP …
一.如何查看PLSQL的执行计划 在SQl Window窗口输入sql语句,然后按键"F5",就会进入执行计划查看界面. 二.界面说明 首先我们看第二行有几个属性可以选“Tree”.“HTML”.“Text”.“XML”.这几个里面的核心数据是一样的,不同的只是对核心数据的展示方式,分别为Tree.HTML.Text.XML.这个可以根据个人习惯来进行选择. 再下面有几个列属性(每个人的列属性可能会不同,这个是可以在PLSQL中进行配置) 我们首先看第一列的Description:下面…
mysql系统变量分为全局变量和会话变量,全局变量的修改影响到整个服务器,会话变量修改只影响当前的会话. 查看log日志是否开启 show variables like 'general_log' set GLOBAL general_log='ON'; SET GLOBAL general_log_file = '/tmp/mysql.log' 不使用的时候记得关掉,否则会大量占用磁盘空间. show processlist命令查看了当前正在执行的sql语句,同时可以查看用户的当前连接 查看慢…
show status like 'Com_%'; Com_select                | 1   执行select操作的次数,一次查询只累加1 Com_insert                | 0   执行insert操作的次数,对于批量插入的insert,只累加一次 Com_update                | 0  执行update操作的次数 Com_delete                | 0  执行delete操作的次数 上述参数对所有存储引擎的表…
在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻辑上做出优化处理,要么是业务特殊性所导致.如果执行频繁的SQL,往往容易遭遇一些并发性的问题. 那么如何查看ORACLE数据库某个SQL的执行频率/次数呢? 有哪些途径方法呢? 方法1: 通过查询V$SQLAREA或V$SQL的EXECUTIONS来查看SQL的执行次数,但是这个值的有效性需要结合FIRST_LOAD_TIME来判断.因为V$SQLAREA…