当前位置: 首页 > news >正文

事务基础知识与执行计划

事务基础知识

  • 数据库事务的概念
  1. 数据库事务是什么?
    1. 事务是一组原子性的SQL操作。
    2. 事务由事务开始与事务结束之间执行的全部数据库操作组成。
    3. A(原子性)、(C一致性)、I(隔离性)、D(持久性)
  • 事务处理语句的使用

1、使用ROLLBACK回滚事务(BEGIN+ROLLBACK)

注意:也可以利用退出程序(\q)结束事务

  1. 十五保存点使用(SAVEPOINT+ROLLBACK)

创建并回滚到保存点

删除保存点

小结

  1. 如何控制事务自动提交?
    1. KES中默认开启了自动提交

注意:显示on,请注意在KES中不允许全局性地修改AUTOCOMMIT的值。

    1. 在会话中关闭自动提交

  1. 什么是隐式事务?
    1. 在AUTOCOMMIT=ON的情况下,每条SQL(增删改查)是一个自动提交的事物,这种事务又称为隐式事务。
  2. 什么是显示事务?
    1. 显示事务指不会自动结束的事务,这种事务一般需要用户手动控制来结束事务。
  3. 什么是单机事务?什么是分布式事务?
    1. 单机事务:指的是一个事务的所有的操作都分布同一个数据库实例上。
    2. 分布式事务:指事务参与者、事务协调者、支持事务的服务器不在同一节点上。
  4. KES支持只读事务吗?

开启只读事务

注意:不能在一个被设置为只读模式的事物中执行DML、DDL、DCL操作。


执行计划

  • SQL语句的执行计划
  1. 执行计划概述

(1)执行计划(Execution Plan)描述SQL语句在数据库中的执行过程,常用于SQL 性能分析。

(2)它是数据库查询优化器选择出来的执行语句的方案。
(3)它依赖于准确的数据库统计信息,包含系统统计信息和对象统计信息。
(4)KES使用的是基于代价(COST)的执行计划,它是优化器对于该语句要运行多久的预估。(5)执行计划会显示启动代价和总代价,对于大部分查询来讲总代价是最需要被关注的。
 

2、执行计划三要素

访问路径、连接顺序、连接方式

二、查询执行计划

1、使用命令执行计划查看方式

变量解释

  1. 实际执行语句
    1. 查看预估执行计划,并实际执行sql

EXPLAIN (analyze true) 可以简写为EXPLAIN analyze。

变量解释:

  1. analyze选项表示系统会实际执行该语句
  2. actual time 表示当前节点单次实际的启动时间和执行时间, 当前节点总体执行时间需要乘以loops。
  3. Planning time表示生成执行计划所需时间。
  4. Execution time 表示实际执行这条SQL语句所花费时间,不包括生成执行计划的时间。
  • 将执行计划输出不同格式

输出json格式

输出yaml格式

注意:输出XML、JSON、YAML格式,一般是为了方便某些背程序或脚本抓取处理。

小结

  1. 执行计划说明
    1. 自下向上看执行成本
    2. 上级节点成本包含了下级的成本
    3. 各节点的估算的总启动或结束成本只是每次loops的平均成本,总成本还要乘以loops次数。
  2. 执行计划步骤耗时规则
    1. 表顺序扫描立即可以获得第一行启动时间一般是0,排序操作是需要启动时间的。

http://www.lryc.cn/news/2692.html

相关文章:

  • 数据库实践LAB大纲 06 INDEX
  • 网络安全实验室6.解密关
  • 了解并发编程
  • (C语言)程序环境和预处理
  • RiProV2主题美化增加支付页底部提示语ritheme主题美化
  • 2022年文章分类整理
  • 蓝牙设备中的Device UUID 与 Service UUID
  • 【学习记录】PCA主成分分析 SVD奇异值分解
  • 用 Python 调用 GPT-3 API
  • 类和对象实操之【日期类】
  • 微搭中如何实现弹性布局
  • 九龙证券|外资强势出手!这只科创板百元股,被疯狂加仓
  • 51单片机最强模块化封装(4)
  • 五、Git本地仓库基本操作——分支管理
  • vscode搭建python Django网站开发环境
  • 【mybatis】实现分页查询
  • CF1560D Make a Power of Two 题解
  • C#开发的OpenRA的读取文件的函数
  • SpringBoot结合XXL-JOB实现定时任务
  • 【Node.js】 创建web服务器
  • 基于go语言实现RestFul交互
  • 情感溢出:读《浣溪沙》
  • 深入解读.NET MAUI音乐播放器项目(一):概述与架构
  • 【Python小游戏】某程序员将套圈游戏玩儿到了巅峰,好嗨哟~Pygame代码版《牛牛套圈》已上线,大人的套圈游戏太嗨了,小孩勿进。
  • php的declare命令如何使用?
  • 嵌软工程师要掌握的硬件知识2:一文看懂什么开漏和推挽电路(open-drain / push-pull)
  • 1.2.6存储结构-磁盘管理:单缓冲区与双缓冲区读取、流水线周期、计算流水线执行时间
  • 【pytest接口自动化测试】结合单元测试框架pytest+数据驱动模型+allure
  • 展锐平台WIFI吞吐问题解决方案
  • 全局向量的词嵌入(GloVe)