decode是个什么动作?

简介: 【2月更文挑战第14天】decode是个什么动作?
  1. 关于几个等待时间的疑问:

    • NET_TIME:这个指的是当前实例上SQL在另外实例上远程执行时的时间吗? 从本实例发出RPC后到对端ob server对rpc请求返回的一个回应间的时间(此时远端还未进入租户队列)?
    • NET_WAIT_TIME: 本实例作为远程执行的执行实例时从接收到RPC请求后到进入租户队列间的等待时间?这部分时间长主要原因是什么?
    • DECODE_TIME: decode是个什么动作?

    • NET_TIME:这个指的是当前实例上SQL在另外实例上远程执行时的时间。从本实例发出RPC后到对端ob server对rpc请求返回的一个回应间的时间。

    • NET_WAIT_TIME: 本实例作为远程执行的执行实例时从接收到RPC请求后到进入租户队列间的等待时间。这部分时间长主要原因可能是网络延迟、资源竞争等。
    • DECODE_TIME: decode是一个SQL的解析过程,包括词法分析、语法分析、语义分析等步骤。
  2. 关于等待事件时间的描述
    这里的当前等待事件、所有等待指的是什么? 例如 一个SQL执行请求记录到sql_audit后物理他是何种类型的执行计划在初始的Observer是否是只会记录一条记录? 如果只有一条记录,他在执行过程中会经历很多个等待,是每次等待时都会把sql_audit中当前等待事件和 wait_time_micro都update 然后将总时间累加到total_wait_time_micro??

    • 当前等待事件:指的是在执行过程中正在经历的等待事件。
    • 所有等待:指的是在执行过程中所有的等待的总和。
    • 一个SQL执行请求记录到sql_audit是不止一条记录的。以下情况会单独记录一个sql audit记录:
      • 接收用户请求的处理线程;
      • 用户SQL触发的内部SQL执行(is_inner_sql = true);
      • 远程执行(is_executor_rpc= true);
      • 每个PX工作线程执行(is_executor = true)。
  3. 行锁的queue也是使用租户的请求队列吗?不通过lock表判断如何区分是行锁排队?

    • 行锁的queue和租户的请求队列并不是一回事,不过队列等待时间这个指标上是包括了行锁的等待时间的。不通过lock表的话还可以结合sql_audit中的event字段来判断,不过建议是通过lock表去判断会更直接一点。
  4. 还有有疑问,sql_audit记录的用户申请了无非2种 is_executor_rpc=0 或1 ,假如一个SQL执行需要本地扫描一个分区、远端扫描一个分区,对于远端的扫描发送rpc后 是不是就处于等待远端返回的状态,按途中的表示 位置1 是本地的执行,位置2 及以后是远端的执行,那么远端执行的相应时间会累积到本地的sql audit记录里吗? 如果是远端解释到rpc后完成2及之后的动作给本地发送rpc,如果是这样的话这个图的顺序看起来又不太对?

    • 一条请求并不是只有一条sql_audit记录,远程执行的请求在远程机器上也会生成sql_audit记录,他们之间通过trace_id进行关联。
    • sql_audit的记录是只有执行完(成功或者失败)才会记录,执行过程中是不记录的。
    • 所以这张图并不是你所说的1是本地,2以后是远程。这张图是相对于一条sql_audit来说的,从发起请求到结束请求完整的时间记录。
  5. 关于当前等待事件,假如一个sql语句只在本地执行,他可能经历了多个latch事件、IO事件,在sqlaudit钟只有一条记录,是不是每次等待事件发生变化时更新audit记录的event相关字段?

    • event字段是记录最长等待事件,所以我上面的回复中说到可以结合sql_audit中的event字段来判断行锁等待,不过建议是通过lock表去判断会更直接一点,就是因为event并不是全部都会记录,是记录最长的等待事件。
目录
相关文章
|
12月前
|
自然语言处理 IDE 测试技术
通义灵码史上最全使用教程:秀一秀AI编程新肌肉
通义灵码是阿里云推出的一款智能编码辅助工具,基于通义大模型,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等功能。它支持 Visual Studio Code 和 JetBrains IDEs,适配多 IDE 原生设计,帮助开发者高效、流畅地编码。官方提供了详细的下载和安装指南,以及丰富的功能介绍和使用指南。
3032 4
|
存储 前端开发 安全
后端技术在现代软件开发中的重要性
本文探讨了后端技术在现代软件开发中的关键作用,包括其与前端的协同、数据管理、服务器配置和安全性等方面。通过分析具体案例和技术细节,帮助读者更深入地理解后端开发的重要性及其实际应用。
WPF GroupBox 样式分享
原文:WPF GroupBox 样式分享 默认样式 添加样式后 样式代码:                                                                                      ...
1847 0
|
前端开发 开发者 容器
前端CSS居中布局(下)
前端CSS居中布局
104 0
|
Linux Shell 网络安全
Linux 系统启动过程
Linux 系统启动过程
199 0
|
传感器 存储 人工智能
工业物联网有利于现代运营的6种方式
从建筑业到采矿业再到制造业,物联网为各行业提供了新的方法来改进其流程,使其更安全、更高效。
385 0
工业物联网有利于现代运营的6种方式
[唐诗]寻西山隐者不遇-丘为
寻西山隐者不遇-丘为 绝顶一茅茨, 直上三十里。 扣关无僮仆, 窥室唯案几。 若非巾柴车, 应是钓秋水。 差池不相见, 黾勉空仰止。 草色新雨中, 松声晚窗里。 及兹契幽绝, 自足荡心耳。 虽无宾主意, 颇得清净理。 兴尽方下山, 何必待之子。
993 0
|
网络协议
一个demo
package com.entity; /*2015-7-18*/ public class Rover { private CurrentPosition position; public Rover(CurrentPosition position) { super(); this.
978 0