事务基础知识与执行计划

事务基础知识

  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,排序操作是需要启动时间的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑马金牌编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值