慢sql监控
A. 如何监控 sql语句的执行时间
如何监控 SQL语句的执行时间
首先纠正你一个说法 不是监视器是PROfilter , 你所说的情况如果是在PROFILTER 中是不存在的任何对数据库的 修改都会在上面显示并标出语句,请你确认你的PROFILTER 是否打开正确的数据库并开始
B. 如何实时监控mysql中的SQL语句的执行情况
首先介绍下 pt-stalk,它是 Percona-Toolkit 工具包中的一个工具,说起 PT 工具包大家都不陌生,平时常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于这个工具包,这里就不多介绍了。
pt-stalk 的主要功能是在出现问题时收集 OS 及 MySQL 的诊断信息,这其中包括:
1. OS 层面的 CPU、IO、内存、磁盘、网络等信息;
2. MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。
而且 pt-stalk 是一个 Shell脚本,对于我这种看不懂 perl 的人来说比较友好,脚本里面的监控逻辑与监控命令也可以拿来参考,用于构建自己的监控体系。
三、使用
接着我们来看下如何使用这个工具。
pt-stalk 通常以后台服务形式监控 MySQL 并等待触发条件,当触发条件时收集相关诊断数据。
触发条件相关的参数有以下几个:
function:
∘默认为 status,代表监控 SHOW GLOBAL STATUS 的输出;
∘也可以设置为 processlist,代表监控 show processlist 的输出;
variable:
∘默认为 Threads_running,代表 监控参数,根据上述监控输出指定具体的监控项;
threshold:
∘默认为 25,代表 监控阈值,监控参数超过阈值,则满足触发条件;
∘监控参数的值非数字时,需要配合 match 参数一起使用,如 processlist 的 state 列;
cycles:
∘默认为 5,表示连续观察到五次满足触发条件时,才触发收集;
其他一些重要参数:
iterations:该参数指定 pt-stalk 在触发收集几次后退出,默认会一直运行。
run-time:触发收集后,该参数指定收集多长时间的数据,默认 30 秒。
sleep:该参数指定在触发收集后,sleep 多久后继续监控,默认 300 秒。
interval:指定状态参数的检查频率,判断是否需要触发收集,默认 1 秒。
dest:监控数据存放路径,默认为 /var/lib/pt-stalk。
retention-time :监控数据保留时长,默认 30 天。
daemonize:以后台服务运行,默认不开启。
log:后台运行日志,默认为 /var/log/pt-stalk.log。
collect:触发发生时收集诊断数据,默认开启。
∘collect-gdb:收集 GDB 堆栈跟踪,需要 gdb 工具。
∘collect-strace:收集跟踪数据,需要 strace 工具。
∘collect-tcpmp:收集 tcpmp 数据,需要 tcpmp 工具。
连接参数:host、password、port、socket。
C. druid sql监控 怎么看
首先是过滤器filter的配置,在web.xml中添加如下配置,如图:
选项配置结束之后,就是我们监控界面的路径配置了,配置如下图
Druid已经配置好,接着在浏览器中访问,如图所以:
输入访问地址后,进入Druid监控页面,如图所示:
此时,在浏览器中输入需要监控系统页面网址,然后点击上个画面中的“SQL监控”即可,此时就可以看到每个SQL语句所用的时间,如下图所示:
D. 如何用慢查询快速定位执行慢的SQL
慢查询可以帮助企业找到执行慢的SQL,开启了慢查询日志,并设置了相应的慢查询时间阈值之后,只需要查询时间大于这个阈值的SQL语句都会保存在慢查询日志中,然后就可以通过工具提取到想要查找的SQL语句了。对于懂这方面知道的技术人才可能并不是很难,但对于没有接触过的人员来说还是比较复杂的,其实你可以可以找第三方提供商帮你做这些服务,听云有了解过吗?听云提供数字化业务运维解决方案,围绕企业的信息化与数字化业务提供一套覆盖用户端、网络、服务器端全栈实时的监控与大数据智能分析平台,对于慢的SQL就可以快递的跟踪定位问题、解决问题。
E. druid SQL监控里执行时间、最慢、事务中等是什么意思,执行时间分布的[0,4,0,0,0,0,0,0]等又是什么意思
执行时间是指对应的SQL语句执行的总时间
最慢是指执行最慢的一次时间
事务中不清楚,但应该和数据是否完成归档校验有关
执行时间分布的具体的意思可以在“数据源”页面中看到,各系统根据配置的不同有不同的定义,例如我这边的定义就是:
事务运行时间分布,分布区间为[0-10 ms, 10-100 ms, 100-1 s, 1-10 s, 10-100 s, >100 s]
F. 如何监控sqlserver 慢查询
如何监控sqlserver 慢查询
1,slow_query_log
这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。
2,long_query_time
当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。
3,slow_query_log_file
记录日志的文件名。
4,log_queries_not_using_indexes
这个参数设置为ON,可以捕获到所有未使用索引的SQL语句,尽管这个SQL语句有可能执行得挺快。
G. 关于sql2008,怎么监控某数据库表变化情况
在每个表中添加触发器~~
一旦数据有变化, 触发器就被触发~ 触发器中写代码将这个变化写入到你指定的日志表中即可。
注意:是多个表的触发器, 去操作同一个日志表。
H. 怎么监控sql server数据库记录被批量更新
监控sql server数据库记录批量更新的方法是利用触发器记录更新历史。
在sql server中惊醒dml操作可以建立插入或者更新的触发器:
update更新类型触发器
if (object_id('tgr_classes_update', 'TR') is not null)
drop trigger tgr_classes_update
go
create trigger tgr_classes_update
on classes
for update
as
declare @oldName varchar(20), @newName varchar(20);
--更新前的数据
select @oldName = name from deleted;
if (exists (select * from student where name like '%'+ @oldName + '%'))
begin
--更新后的数据
select @newName = name from inserted;
update student set name = replace(name, @oldName, @newName) where name like '%'+ @oldName + '%';
print '级联修改数据成功!';
end
else
print '无需修改student表!';
go
I. 请教zabbix如何监控mssql
监控mssql,需要利用zabbix_agentd.conf配置文件中的PerfCounter高级参数。
设置如下:
PerfCounter = db_pages,"\SQLServer:Buffer Manager()\Database pages",60
PerfCounter = db_free_pages,"\SQLServer:Buffer Manager()\Free pages",60
PerfCounter = db_data_file_size,"\SQLServer:Databases(DATABASE_NAME)\Data File(s) Size (KB)",60
PerfCounter = db_log_file_size,"\SQLServer:Databases(DATABASE_NAME)\Log File(s) Size (KB)",60
PerfCounter = db_userconns,"\SQLServer:General Statistics()\User Connections",60
PerfCounter = db_server_mem,"\SQLServer:Memory Manager()\Total Server Memory (KB)",60
PerfCounter = db_cpu_load,"\Process(sqlservr)\% Processor Time",60
可以实现对SQLServer部分性能的监控.其中数据文件和日志文件监控中,要将实际监控的数据库名字
替代"DATABASE_NAME"。
监控项的key分别指向上面定义的参数,如"db_pages""db_free_pages"等。
要想显示windows主机可以监控的性能计数列表,可以在CMD中输入typeperf-qx
获取所有项。