本文来自:http://isadba.com/?p=651

一、pt-query-digest参数介绍.

 pt-query-digest --user=anemometer --password=anemometerpass     --review h=192.168.11.28,D=slow_query_log,t=global_query_review  \
--history h=192.168.11.28,D=slow_query_log,t=global_query_review_history \
--no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \
/usr/local/mariamysql/data/localhost-slow.log

–filter 对输入的慢查询按指定的字符串进行匹配过滤后再进行分析
–limit限制输出结果百分比或数量,默认值是20,即将最慢的20条语句输出,如果是50%则按总响应时间占比从大到小排序,输出到总和达到50%位置截止。
–host mysql服务器地址
–user mysql用户名
–password mysql用户密码
–history 将分析结果保存到表中,分析结果比较详细,下次再使用–history时,如果存在相同的语句,且查询所在的时间区间和历史表中的不同,则会记录到数据表中,可以通过查询同一CHECKSUM来比较某类型查询的历史变化。
–review 将分析结果保存到表中,这个分析只是对查询条件进行参数化,一个类型的查询一条记录,比较简单。当下次使用–review时,如果存在相同的语句分析,就不会记录到数据表中。
–output 分析结果输出类型,值可以是report(标准分析报告)、slowlog(Mysql slow log)、json、json-anon,一般使用report,以便于阅读。
–since 从什么时间开始分析,值为字符串,可以是指定的某个”yyyy-mm-dd [hh:mm:ss]”格式的时间点,也可以是简单的一个时间值:s(秒)、h(小时)、m(分钟)、d(天),如12h就表示从12小时前开始统计。
–until 截止时间,配合—since可以分析一段时间内的慢查询。

二、分析结果分析:

#pt-query-digest mysql-slow.log
--分析mysql-slow.log这个慢查询日志文件
# A software update is available:
# * The current version for Percona::Toolkit is 2.2.9. 开始总的摘要信息
# 170ms user time, 10ms system time, 26.00M rss, 213.39M vsz
--此工具执行日志分析时的所用时间、内存资源(rss物理内存占用大小,vsz虚拟内存占用大小)
# Current date: Mon Jul 28 09:55:34 2014
--分析时的系统时间
# Hostname: lump.group.com
--进行分析的主机名,非记录日志的数据库服务器
# Files: mysql-slow.log
--分析的日志文件名称
# Overall: 5 total, 4 unique, 0.02 QPS, 0.04x concurrency ________________
--文件中总共的语句数量,唯一的语句数量(对语句进行了格式化),QPS,并发数
# Time range: 2014-07-28 09:50:30 to 09:54:50
--记录日志的时间范围
# Attribute total min max avg 95% stddev median
--total总计,min最小,max最大,avg平均,95%把所有值从小到大排列,位于95%的那个数
# ============ ======= ======= ======= ======= ======= ======= =======
# Exec time 10s 1s 3s 2s 3s 753ms 1s
# Lock time 196us 0 79us 39us 76us 33us 42us
# Rows sent 1.40k 0 716 287 685.39 335.14 3.89
# Rows examine 15.32k 0 11.13k 3.06k 10.80k 4.02k 2.06k
# Rows affecte 0 0 0 0 0 0 0
# Bytes sent 72.42k 11 38.85k 14.48k 38.40k 17.57k 234.30
# Query size 807 6 342 161.40 329.68 146.53 112.70

–Exec time:语句执行时间
–Lock time:锁占有时间
–Rows sent:发送到客户端的行数
–Row examine:扫描的行数(SELECT语句)
–Row affecte:发送改变的行数(UPDATE, DELETE, INSERT语句)
–Bytes sent:发送多少bytes的查询结果集
–Query size:查询语句的字符数

查询分组统计结果

# Profile
# Rank Query ID Response time Calls R/Call V/M Item
# ==== ================== ============= ===== ====== ===== ===============
# 1 0x4A9CF4735A0490F2 3.1898 31.9% 1 3.1898 0.00 SELECT history_uint
# 2 0x2B0044BDE0960A2F 2.6991 27.0% 1 2.6991 0.00 SELECT history
# 3 0x813031B8BBC3B329 2.5755 25.7% 2 1.2877 0.00 COMMIT
# 4 0x469563A79E581DDB 1.5380 15.4% 1 1.5380 0.00 SELECT sessions

–Rank:分析的所有查询语句的排名,默认按查询时间降序排序,可以通过–order-by指定排序方式
–Query ID:查询语句的指纹,去掉了多余空格、和文本字符
–Response time:响应时间,占所有响应时间的百分比
–Calls:查询执行的次数
–R/Call:每次执行的平均响应时间
–V/M:响应时间Variance-to-mean的比率,参考:http://en.wikipedia.org/wiki/Index_of_dispersion
–Item:查询语句
–最后一行没有包括在报告中的查询合计统计信息,如使用了选项–limit和–outliers

每个独立查询语句的分析

# Query 1: 0 QPS, 0x concurrency, ID 0x4A9CF4735A0490F2 at byte 591 ______
--QPS:每秒查询数(queries per second)
--concurrency:该查询的近似并发值
--ID:16进制,查询语句的指纹,去掉了多余空格、和文本字符、转换成小写,使用--filter可以用来进行过滤(如:pt-query-digest mysql-slow.201407250000 --filter '$event->{fingerprint} && make_checksum($event->{fingerprint}) eq "0793E2F7F5EBE1B1"' > slow2.txt),必须移除0x
--at byte 289141:查询语句在日志文件中的偏移量(byte offset),不一定精确,根据偏移量在日志文件中查找语句(如tail -c +289141 mysql-slow.201407250000 |head) # This item is included in the report because it matches --limit.
# Scores: V/M = 0.00
# Time range: all events occurred at 2014-07-28 09:51:02
# Attribute pct total min max avg 95% stddev median
--95%:95th percentile,stddev:standard deviation # ============ === ======= ======= ======= ======= ======= ======= =======
# Count 20 1
--pct在整个日志文件中,执行语句占用百分比(20%),总计执行了1次
# Exec time 31 3s 3s 3s 3s 3s 0 3s
# Lock time 40 79us 79us 79us 79us 79us 0 79us
# Rows sent 49 715 715 715 715 715 0 715
# Rows examine 13 2.09k 2.09k 2.09k 2.09k 2.09k 0 2.09k
# Rows affecte 0 0 0 0 0 0 0 0
# Bytes sent 45 33.31k 33.31k 33.31k 33.31k 33.31k 0 33.31k
# Query size 42 342 342 342 342 342 0 342
# String:
# Databases zabbix
--数据库名
# Hosts
# Last errno 0
# Users zabbix
--执行语句的用户名
# Query_time distribution
--查询的执行时间分布情况图,可以使用选项--report-histogram进行定义
# 1us
# 10us
# 100us
# 1ms
# 10ms
# 100ms
# 1s ################################################################
# 10s+
# Tables
# SHOW TABLE STATUS FROM `zabbix` LIKE 'history_uint'\G
--可以使用该语句查询表的统计信息,如大小
# SHOW CREATE TABLE `zabbix`.`history_uint`\G
--可以使用该语句查看表的结构信息
# EXPLAIN /*!50100 PARTITIONS*/
SELECT itemid,round(1401* MOD(CAST(clock AS UNSIGNED)+79742,86400)/(86400),0) AS i,COUNT(*) AS count,AVG(value) AS avg,MIN(value) AS min,MAX(value) AS max,MAX(clock) AS clock FROM history_uint WHERE itemid='' AND clock>='' AND clock<='' GROUP BY itemid,round(1401* MOD(CAST(clock AS UNSIGNED)+79742,86400)/(86400),0)\G
--可以使用该语句查看查询计划,如非select语句,工具会转换成类似的select语句,方便进行explain

官方文档说明:https://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html

pt-query-digest使用介绍【转】的更多相关文章

  1. Elasticsearch Query DSL 语言介绍

    目录 0. 引言 1. 组合查询 2. 全文搜索 2.1 Match 2.2 Match Phase 2.3 Multi Match 2.4 Query String 2.5 Simple Query ...

  2. HTTP Basic和Digest认证介绍与计算

    一.说明 web用户认证,最开始是get提交+把用户名密码存放在客户端的cookie中的形式:在意识到这样不安全之后逐渐演变成了post提交+把用户凭证放到了服务端的session中的形式(当然ses ...

  3. 1.7.4 Query Syntax and Parsing

    1. 查询语法和解析 这部分主要说明了如何指定被使用的查询解析器.同样描述了主查询解析器的支持的语法和功能.同时还描述了在特定环境下使用的其他查询解析器.这里有一些普通查询解析器都能使用的参数,将会在 ...

  4. Grafana介绍

    Grafana是一个开源的度量分析与可视化套件.纯 Javascript 开发的前端工具,通过访问库(如InfluxDB),展示自定义报表.显示图表等.大多使用在时序数据的监控方面,如同Kibana类 ...

  5. SpringMVC MongoDB之“基本文档查询(Query、BasicQuery)”

    一.简介 spring Data  MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作,上一篇我 ...

  6. [hdu 6191] Query on A Tree

    Query on A Tree Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Othe ...

  7. Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一)

    一.简单介绍 Spring Data  MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作,上一 ...

  8. Spring Data MongoDB 三:基本文档查询(Query、BasicQuery

    一.简介 spring Data  MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作,上一篇我 ...

  9. Elasticsearch学习笔记-Delete By Query API

    记录关于Elasticsearch的文档删除API的学习 首先官网上Document APIs介绍了 Delete API 和Delete By Query API. Delete API可以通过指定 ...

  10. (转载)搜索引擎的Query自动纠错技术和架构详解

    from http://www.52nlp.cn/%E8%BE%BE%E8%A7%82%E6%95%B0%E6%8D%AE%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E7 ...

随机推荐

  1. jquery的load和get的区别

    jquery的load把返回的数据放到指定的元素中,不是全局函数:jquery的get把返回的数据交给用户处理,是全局函数. load和get同样是jquery的ajax函数,load的实现,几乎等于 ...

  2. [MongoDB]Profiling性能分析

    摘要 上篇文章介绍了mapReduce这个聚合操作.本篇将继续学习,db有了,collection和document也有,基本上够用了,但是随着项目上线后,发现业务数据越来越多,查询效率越来越慢,这时 ...

  3. SQL Server2008窗口计算

    (一) 窗口的定义:指为用户指定的一组行,也称着"分区".如下图所示的窗口分区.每一个班级看作是一个数据窗口,一共有三个窗口 (二)窗口计算的相关方法 1)over()用法  格式 ...

  4. jQuery.Callbacks 源码解读二

    一.参数标记 /* * once: 确保回调列表仅只fire一次 * unique: 在执行add操作中,确保回调列表中不存在重复的回调 * stopOnFalse: 当执行回调返回值为false,则 ...

  5. JavaScript实现联想校招员工信息展示

    原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 起因 今天和豪哥聊天,才知道他是我老乡,而且特别近..真的感觉他是我的贵人,这是他从 联想校招扣出来的,我们就用Java ...

  6. mybatis 简单使用示例(单独使用):

    mybatis的单独使用简单示例: 步骤1: 新建xml文件. 示例: <?xml version="1.0" encoding="UTF-8" ?> ...

  7. spring 缓存(spring自带Cache)(入门)

    spring的缓存机制,是方法纬度的缓存机制, 这就意味着我们并不用关注 底层是否使用了数据库以及通过什么方式访问的数据库: 因此,此缓存方法既适用于dao层,也适用于service层. spring ...

  8. PHP简易聊天室&调试问题

    在进入login.php程序之后 <?php error_reporting(E_ALL^E_NOTICE); session_start();  //装载Session库,一定要放在首行 $u ...

  9. 滑雪 why WA

    滑雪 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 587  Solved: 219 Description 小明喜欢滑雪,因为滑雪的确很刺激,可是为了获 ...

  10. 大数据之pig安装

    大数据之pig安装 1.下载 pig download 2. 解压安装 mapreduce模式安装: 1:设置HADOOP_HOME,如果pig所在节点不是集群中的节点,那就需要把集群中使用的hado ...