没有合适的资源?快使用搜索试试~ 我知道了~
判断是否为slow query是获取所需的表锁之后,进行执行的时间(如果是多表则是最后一个获取到的表锁的时间)变量start_utime,保存语句开始执行的时间
资源详情
资源评论
资源推荐
slow log 的分析
slow log 的内容例子
Time Id Command Argument
# Time: 141202 14:17:36
# User@Host: root[root] @ localhost [] Id: 1
# Query_time: 2.486444 Lock_time: 0.000912 Rows_sent: 1 Rows_examined: 0
SET timestamp=1417501056;
select count(*) from performance_schema.events_statements_history;
slow log 的重要时间点
语句开始执行的时间点(1)
获得表 lock 的时间点(2),现已知有两处
判断是否为 slow query 的时间点(3)
计算 Query_time 和 Lock_time 的时间点(4)
按照时间点可以分为两个时间段,开始执行到获取表锁的时间段(如果有其他事务长期占用
该表,则此时间段也变长,两者时间成正比)和语句执行的时间段(由于其中 3 和 4 的时间
点在语句执行完立刻结束,所以)
时间点 3 是这样判断是否为 slow query 的
ulonglong end_utime_of_query= current_utime();
if (end_utime_of_query > utime_after_lock + variables.long_query_time)
server_status|= SERVER_QUERY_WAS_SLOW;
utime_after_lock 为时间点 2 记录的时间,variables.long_query_time 为配置文件(命令
行指定的 long_query_time 的内容),end_utime_of_query 为当前时间
时间点 4 是这样生成 Query_time 和 Lock_time 的
current_utime= thd->current_utime();
current_time= my_time_possible_from_micro(current_utime);
if (thd->start_utime)
{
query_utime= (current_utime - thd->start_utime);
lock_utime= (thd->utime_after_lock - thd->start_utime);
白小俗
- 粉丝: 32
- 资源: 302
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0