添加索引导致微服务异常

news2025/4/5 21:59:57

一、现象

某app部分功能不可用,提示“连接服务器超时,请稍后尝试”。

二、分析

1、分析发现数据库存在大量的TM争用。

        

2、继续分析发现存在TM行锁的阻塞会话主要是以下几个:

3、查看其阻塞源头是1940

4、而1940进程在这个时间段是在跑新增索引的操作,造成TM锁阻塞

该表有1.9亿条记录,索引创建时间会比较长。    

而在新增索引的时候会有TM锁,而该表又有大量的insert、update等,因此会对这些dml语句造成阻塞。

三、解决

1、将该新增索引的语句停掉,阻塞消失。

2、在新增索引的时候加online参数,而online产生的TM锁时间比较短。

     执行DDL时,最好使用ONLINE选项,随着oracle版本升级,online状态下可执行的DDL逐步增加,大部分普通DDL上,可以使用ONLINE选项,例如

   online选项执行create index命令,不是以shared模式,而是以sub-shared(ss)(意向共享锁)模式获得TM锁的这句话的解释是:

    创建索引的时候获取的TM锁的模式是SS模式(sub-shared)  v$lock中lmod 是2;

    对表做DML获取的TM锁的模式是SX(Sub-exclusive)  v$lock 中lmod是4;

    两种模式sub-shared 和 sub-exclusive 可以共享性。

       普通创建索引的命令create index会先锁表,然后再创建索引,如果表中数据量很大,会造成阻塞DML语句。

加了online后,可以以非独占的方式创建和删除索引。

但是加online字段有一些限制:

ONLINE

Specify ONLINE to indicate that DML operations on the table will be allowed during creation of the index.

Restrictions on Online Index Building

Parallel DML is not supported during online index building. If you specify ONLINE and then issue parallel DML statements, Oracle returns an error.

You cannot specify ONLINE for a bitmap index or a cluster index.

You cannot specify ONLINE for a conventional index on a UROWID column.

For a unique index on an index-organized table, the number of index key columns plus the number of primary key columns in the index-organized table cannot exceed 32.

翻译如下:

在创建索引的过程中指定ONLINE参数

四、建议

1、对大表新增索引尽量停业务,就算加上online不会造成阻塞,但对性能也有影响,特别是这种性能敏感的系统。

可在检修停业务的情况下通过并行快速创建索引。

2、在生产数据库务必一定使用online方式创建索引。

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

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

相关文章

逆矩阵、秩

在数学的广阔天地中,线性代数扮演着至关重要的角色。它不仅是现代科学和工程学的基石,也是理解复杂数据结构的关键。本文将深入探讨线性代数中的几个核心概念:逆矩阵、秩、列空间和零空间,通过详细的解释和丰富的实例,…

(2024,LoRA压缩和多LoRA快速切换,联合对角化,重构误差)先压缩再提供服务:以极低的开销为数千个 LoRA提供服务

Compress then Serve: Serving Thousands of LoRA Adapters with Little Overhead 公和众与号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 1. 简介 3. 基于秩的 LoRA 压缩 3.1 期望特…

ubuntu安装tar安装 nginx最新版本

一、需要先安装依赖 apt install gcc libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev 二、上传安装包 并解压 下载地址 nginx news tar xvf nginx-1.25.2.tar.gz 进入nginx cd nginx-1.25.2 三、编译 ./configure --prefix=/usr/local/nginx --with-htt…

数组模拟单调栈--C++

本题的计算量较大,用暴力算法会超时,的用别的方法,我们假设在左边找第一个比它小的数,那么在左边出现一次的数如果比右边大了,那么就不会在出现了,我们将它删除掉就可以了,用这个方法我们可以的…

算力QoS技术革新:OrionX引领AI行业资源管理新趋势

01 前言 在当今数字化时代,人工智能(AI)已成为各行业发展的关键推动力。然而,随着AI技术的蓬勃发展,行业对计算资源的需求也日益增长,传统的资源分配方式已无法满足需求。 在这一背景下,算力Q…

基于vue-onlyoffice实现企业office web在线应用

目录 1.背景... 1 2.Onlyoffice介绍... 2 3.Onlyoffice核心api介绍... 2 3.1 ApiDocument 2 3.2 ApiParagraph. 2 3.3 ApiTable. 2 3.4. ApiRange. 3 4.Onlyoffice插件介绍... 3 4.1 插件定义... 3 4.2 插件对象... 3 4.3 插件结构... 4 4.4 插件内嵌使用方式... 4…

Echarts 柱状图实现同时显示百分比+原始值+汇总值

原始效果:柱状图 二开效果: 核心逻辑 同时显示百分比和原始值 label: {show: true,position: inside,formatter: (params) > {const rawValue rawData[params.seriesIndex][params.dataIndex];const percentage Math.round(params.value * 1000) / …

基于springboot+vue+uniapp的校园二手交易小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

达梦数据库基础操作-查询

一、基础查询 1 )单表查询 1. 查看表结构 使用两种方式可查看数据库的表结构: 查询后会显示该表的创建语句以及结构 2. 查询全表 使用 SELECT * 查询全表,此时数据库会返回表所有列 3. 行过滤 使用条件查询进行过滤,…

2024电赛H题参考方案(+视频演示+核心控制代码)——自动行使小车

目录 一、题目要求 二、参考资源获取 三、参考方案 1、环境搭建及工程移植 2、相关模块的移植 4、整体控制方案视频演示 5、视频演示部分核心代码 总结 一、题目要求 小编自认为:此次H题属于控制类题目,相较于往年较为简单,功能也算单一&…

Vue - CSS基础学习

一、元素及属性 CSS 是为 web 内容添加样式的代码。 style标签 1.语法 1.除了选择器部分,每个规则集都应该包含在成对的大括号里({})。 2.在每个声明里要用冒号(:)将属性与属性值分隔开。 3.在每个规则集里要用分号…

Windows执行jar包

配置环境变量: 命令行测试: java -version 将jar包上传至指定目录,在该目录下创建运行脚本: chcp 65001 java -Dfile.encodingutf-8 -jar jxpaddle-admin.jar chcp 65001:将当前cmd编码改为UTF-8,仅对当…

单片机芯片程序读取方法和工具

如何把单片机芯片程序读取出来 读取芯片中的程序可以通过多种方法实现,具体方法取决于芯片的类型和可用的工具。 一、使用‌Keil软件: 如果芯片是Flash类型的,可以使用Keil软件配合硬件调试工具进行读取。首先,需要配置Keil工程&…

【Unity源码】多人FPS游戏

项目概述 《多人FPS游戏》(Multiplayer-FPS) 是一个基于Unity3D引擎开发的多人第一人称射击游戏。该项目支持多种输入设备,包括Kinect、Xbox控制器、Leap Motion手势控制、VR眼镜等,提供了丰富的交互体验。 项目特点 多种输入设备支持:除了…

基于北京市空气质量影响因素研究系统【城市可换爬虫获取、LSTM、Flask、Echarts、MySQL、TensorFlow】

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主研究背景国内外研究现状研究目的研究意义关键技术理论介绍数据采集数据分析与大屏设计大屏相关性分析LSTM模型训练系统集成展示总结每文一语 有需要本项目的代码或文档以及全部资源&#xf…

springboot高校实验室安全管理系统-计算机毕业设计源码73839

目 录 摘要 1 绪论 1.1 研究背景 1.2 选题意义 1.3研究方案 1.4论文章节安排 2相关技术介绍 2.1 B/S结构 2.2 Spring Boot框架 2.3 Java语言 2.4 MySQL数据库 3系统分析 3.1 可行性分析 3.2 系统功能性分析 3.3.非功能性分析 3.4 系统用例分析 3.5系统流程分析…

双指针专题

前言(回顾一下): Leetcode 283.移动零 思路: 使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换&#xf…

C语言 -- 动态内存管理

C语言 -- 动态内存管理 1. 为什么要有动态内存分配2. malloc 和 free2.1 malloc2.2 free 3. calloc 和 realloc3.1 calloc3.2 realloc 4. 常见的动态内存的错误4.1 对NULL指针的解引用操作4.2 对动态开辟空间的越界访问4.3 对非动态开辟内存使用free释放4.4 使用free释放一块动…

嵌入式学习——C语言指针(一)

一、地址和指针的概念 地址:内存单元的编号。 指针:一个变量的首地址就叫做该变量的指针。 1、内存中存取数据的方式 1)直接存取 直接用变量名存取变量所占内存单元的内容 例: int y,x 3; y 3*x2; 2&#…

【日记】今天又是哪朵小云不开心了呀(1886 字)

正文 上午上班没多久,天就特别阴,感觉像是要下暴雨的样子。前台接了一个电话,家里人打来的,她妈妈叮嘱她,要注意一点。他们那边已经开始下了。她转过头对我笑笑说,原来下雨在一个城里也能不同步。 当时我笑…