本文来自: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. [Asp.net mvc]jquery.form.js无刷新上传

    写在前面 最近在自己的网盘项目中想用ajax.beginform的方式做无刷新的操作,提交表单什么的都可以,但针对文件上传,就是个鸡肋.在网上查找了发现很多人都遇到了这个问题,大部分都推荐使用jque ...

  2. word中那些重要但是被人忽略的快捷键和长word文档的跳转

    重复上一次操作: F4, 这个太重要了,比如你在做一次很复杂的操作, 下一次又要这样操作时就很有用! 如设置 文字的 段落背景/ 底纹颜色!时要多次设置这个时就 非常有用! 段落缩进:ctrl+M : ...

  3. thinkphp学习笔记13-15集

    13集: ThinkPHP3.1.3使用视频教程--后台登录验证与自动运行方法_标清.flv 14集: ThinkPHP3.1.3使用视频教程--自定义SESSION处理DB驱动与添加Redis处理驱 ...

  4. BufferedReader readLine()方法

    控制台输入字符串之后回车,后台接收传来的字符串,代码如下: import java.io.BufferedReader; import java.io.IOException; import java ...

  5. [译]git config

    git config git config命令用来设置git的一些配置(包括全局配置和针对单个仓储的配置).git config命令能定义一个仓储的用户信息和用户偏好. 用法 git config u ...

  6. 找不到类型“{x}.{x}”,它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。

    最近在搞一个WCF的项目... 刚开始在这条路上走... 各种崎岖... 网上搜到的一种解决方案(也是大多数情况的解决方案): 原文:http://www.cnblogs.com/Olive116/p ...

  7. 【GXZ的原创】C++小游戏——五子棋

    前些时候考完试自己编的带有胜负判定的五子棋. 操作方法:WSAD或↑↓←→移动下棋位置,Space或Enter放置. 如果游戏出现bug,欢迎大家在评论区反馈. #include <stdio. ...

  8. 71-IO 流

    JAVA IO 流 一.概括 1.IO(INPUT OUTPUT)流 1.1 IO 流用来处理设备之间的数据传输 1.2JAVA 对数据的操作是通过流的方式 1.3 JAVA 用于操作流的对象都在 I ...

  9. C#爬虫之~苏飞万能框架使用教程

    苏飞的框架帮助类,很多人应该都知道,不知道可以百度,此处直接说用法. //引入命名空间 using CsharpHttpHelper; //创建Httphelper对象 HttpHelper http ...

  10. CSS选择器的特殊性和LOVE HA

    在CSS中当几个相同的选择器对同一个元素有不同的规则时,该怎么应用这些规则呢? 答案就是:CSS特殊性(CSS specificity) 选择器特殊性有选择器本身组成,特殊性由4个数值表述:0, 0, ...