数据库管理-第七十二期 复盘(20230505)

news2024/11/19 0:23:54

数据库管理 2023-05-05

  • 第七十二期 复盘
    • 1 再测试
    • 2 对照
      • 分析:
    • 3 如何解决
    • 总结

第七十二期 复盘

上一期的内容,我承认主要是在放假,分析过程还是水了一点,SR转回国内之后,处理效率还是提升了一大截。

1 再测试

在客户的要求下昨晚把之前建立的单列索引干掉以后,再执行相同的语句,本以为会花费比较多时间,结果很快就执行完成了,40s。这对我来说到不算是惊吓,只能说,数据量和业务量的增长不是语句跑不出结果的主要原因,需要进一步的分析。

2 对照

把新的SQL Monitor弄出来和之前的做一个对比:

  • OLD - poor performance (SQL1)
    在这里插入图片描述
    在这里插入图片描述
  • NEW - good performance (SQL2)
    在这里插入图片描述

分析:

  1. 对SQL1进行分析,由时间线入手,CTAS的实际执行加载数据是从语句执行开始的13336s开始的,根据任务开始时间为11:00-11:10之间计算,该语句被阻塞约222.3分钟,至14:40-14:50之间;后开始执行加载数据耗时1162s,约19.4分钟,和15:08处理终止语句时间时间是匹配的上的。
  2. 同时SQL1是因为row cache lock被阻塞达到13336s。 这个表名在当时可能有相同的或者类似的sql 也在执行同样的操作,导致这个sql 获取不到数据字典上的锁,所以有这个等待事件并且执行很慢。结合业务方反馈9点任务执行失败可能造成数据库后台仍有相关字典锁,一直持续至14:40-14:50之间。
  3. 以rms_trans_neport为例,SQL1执行1162s仅完成6007次操作扫描65k数据,SQL2执行40s完成54k次操作扫描数据617k并成功完成。经业务方反馈,rms_trans_neport、rms_area_cell d、rms_wcell每日都涉及数据全量刷新,同时temp_ponptp_cardtype为任务执行中创建的临时表,在涉及大规模数据操作或全表数据刷新时会导致表统计信息异常,加上这些操作经常发生在统计信息自动维护任务窗口之外,数据库优化器无法正确根据统计信息分配合理的资源用于运算。
  4. 语句书写使用自然连接,执行计划解析为nest loop,即5张表根据关联关系row by row筛选数据,进一步增大了分配资源不足带来的执行速度不足的影响。

不得不说当时处置的时候,由于时间紧迫,加上第二次异常紧接着发生,没有时间通过类似于gv$locked_object等视图进一步排查是否在活动SQL以外还有没有异常锁(当然我14:50后登录到服务器和EM也错过了没法直接看到之前的异常会话orSQL)。

3 如何解决

  • 业务方调整任务执行机制,确保无相同任务同时执行,并添加任务失败与超时的告警机制。
  • 业务方在大规模数据操作或表刷新操作后添加统计信息收集操作以避免因统计信息异常导致的性能问题。
  • 业务方修改CTAS建表语句,使用join替代自然连接,增加查询效率。
  • 同时Oracle后台SR反馈,PDB回收站功能开启状态也可能出现建表过程中出现"row cache lock" (dc_objects) 相关等待,将继续持续监控数据库,并与业务方沟通是否需要开启回收站功能。(Sessions Hang on “row cache lock” (dc_objects) While Creating & Dropping a Table Concurrently (Doc ID 2319957.1))。
alter system set recyclebin='off' sid='*';

总结

老规矩,知道写了些啥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/492389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux - 第11节 - 网络基础(一)

1.计算机网络背景 1.1.网络发展 独立模式:计算机之间相互独立 在早期的时候,计算机之间是相互独立的,此时如果多个计算机要协同完成某种业务,那么就只能等一台计算机处理完后再将数据传递给下一台计算机,然后下一台计…

Python进阶——实现人脸识别

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 今天我们来实现一下人脸识别~ 先问大家一个问题 什么是百度Aip模块? 百度AI平台提供了很多的API接口供开发者快速的调用运用在项目中 本文写的是使用百度AI的在线接口SDK模块(baidu-aip&#…

单链表——单链表的定义及基本操作(初始化、头插法尾插法建表、查找、插入、删除、判空等)

单链表的定义 由于顺序表存在以下缺陷,所以衍生出了链表,而链表种类有很多种,今天我们讲的是单链表。 顺序表存在的问题如下 1.中间/头部的插入删除,时间复杂度为O(N) 2. 增容需要申请新空间,拷贝数据,释…

CPU 架构(x86/ARM)简介

CPU 架构通过指令集的方式一般可分为 复杂指令集(CISC) 和 精简指令集(RISC) 两类,CISC 主要是 x86 架构,RISC 主要是 ARM 架构,还有 MIPS、RISC-V、PowerPC 等架构。 本文重点介绍 x86 和 ARM…

idea中maven的几个操作按钮:clean、validate、compile...

idea中Maven生命周期指令 clean命令 清除由项目编译创建的target validate命令 验证项目是否正确,并且所有必要的信息均可用 compile命令 编译项目的源代码 test命令 使用合适的单元测试框架来测试编译的源代码。 这些测试不应要求将代码打包或部署 verify命令 …

智安网络|一文看懂内核平台和系统服务的联系

内核平台和系统服务是操作系统中两个非常重要的组成部分。内核平台是系统底层的核心,负责管理和控制计算机硬件和资源的访问。而系统服务则是在内核之上运行的程序集合,为操作系统提供各种功能和服务。 内核平台和系统服务的关联非常密切。系统服务必须…

Emqx的简单使用

Emqx 是一个mqtt 的服务器产品。之前activemq可以作为mqtt协议的服务器,但是功能相对来说比较单一。Emqx作为跟Mqtt协议相关的新一代产品,功能实际上更为强大。 它的功能也主要体现在可视化/认证/规则/httpApi 上面。 1.Emqx 的安装 这里采用了docker…

JMeter 计算上一个接口取值到本次接口进行四则运算赋值

项目场景: 公司项目需要接口关联计算进行赋值: 项目场景:A接口提取的返回值,在传到B接口使用时,需要先进行四则运算后,再赋值使用。 A接口提取的值 B接口需要使用计算后的值 问题描述 使用beanshell预…

必须掌握的ArrayList,LinkedList,HashMap,HashTable,Collection,Colections

人的自由并不在于可以做他想做的事,而在于可以不做他不想做的事。 ArrayList和linkedList的区别 Array数组是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的 Array获取数据的时间复杂度是o(1)&#xff…

南卡OE系列再添新成员,造型犀利有型,性能强劲动听!

科技的快速发展让消费者对智能互联、操作体验、设计审美、安全健康等需求越发高涨,蓝牙耳机也正在由功能性向舒适性方向发展。如何提高蓝牙耳机的舒适度、拥有更舒适的听歌体验,成为蓝牙耳机品牌和消费者共同努力的方向。 Nank南卡:更专业的骨…

【Linux】单机版QQ之管道中的命名管道

还记得上一篇的匿名管道吗? 文章目录 前言一、命名管道总结 前言 命名管道是什么呢? 管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。 如果我们想在不相关的进程之间交换数据,可以使用FIFO文…

一百零七、MySQL数据库的数据备份与数据恢复

MySQL数据库的数据备份与恢复主要有3种方法,前两种都是MySQL dump命令,第三种则是用Navicat工具直接备份。相比而言,第三种方法更加简单! 1 方法一(MySQL dump命令) 1.1 登录MySQL [roothurys22 ~]# mysq…

Maya云渲染如何使用,Maya云渲染流程实操!

Maya 是一款专业的 3D 软件,用于创建逼真的角色和大片的效果,Maya可以加速工作流程,帮助您专注于创造力并按时完成任务。也可以为角色和场景添加精美的细节,并提供让客户满意的优质作品。更有无数业内顶级艺术家依靠 Maya来创作更…

【Halcon】新建程序 读取图片 路径设置

文章目录 1 新建程序2 读取一张图片3 图片路径4 图片格式读取报错5 快速添加 绝对路径 1 新建程序 点击新程序图标,即可新建; 程序另存为,会弹出保存路径 2 读取一张图片 read_image(Image,fabrik)此时工程路径下并没有图片; …

SpringBoot2 集成 ELK 实现日志收集

目录 一 简介 二 ELK 各组件作用 三 ELK 各组件安装 四 Spring Boot2 集成 logstash 一 简介 ELK 即 Elasticsearch、Logstash、Kibana 组合起来可以搭建线上日志系统,本文主要讲解使用ELK 来收集 SpringBoot2 应用产生的日志。 二 ELK 各组件作用 Elasticsea…

基于FPGA和Matlab实现的FFT功能验证

一 、FFT设计验证思路 1、基于Matlab与FPGA的混频sin信号的FFT验证,分别在Matlab和FPGA开发环境上实现相同的FFT功能设计。 2、Matlab平台开发,使用自带的fft函数与相关操作函数,绘制出混频sin信号,经过fft功能处理后的频谱图。 3…

2022 ios APP最新开发测试教程

转载:2022 ios APP最新开发测试教程1.本文详细介绍最新的在windows上进行ios app开发编译打包安装到手机测试的完整流程。介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios开发描述文件等。http://kxdang.com/topic/appuploader/ios…

IP报文结构

文章目录 IP报文结构分片 IP报文结构 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4. 4位头部长度(header length): 类似于TCP4位首部长度,通常填的是0101(十进制5) 16位总长度(total length): IP数据报整体占多少个字节.这用…

大数据企业应用合作解决方案案例

打造产教融合的就业育人的综合服务平台,给予十余年的数据智能产业实践经验,专注于大数据和人工智能方向。 目前合作的企业案例包括:信访大数据平台解决方案、工业废水处理解决方案、找齐远程监控解决方案、道路运输安全、广电用户服务大数据解…

VS2019 c++ cmake项目 打包并使用 (lib\dlll)

背景 最近项目中经常调用第三方库、带头文件、lib和dll的库,需要使用cmake进行项目管理,之前一直比较糊涂这方面,在这里做一个整理总结 编译汇编过程 静态链接方式: 把lib里面编译好的东西(函数、变量等&#xff09…