SQL性能优化策略

news/2024/7/21 19:43:53 标签: sql, 性能优化, oracle
发现问题
  • 通过业务监控发现慢SQL或接口响应延迟。
  • 利用性能分析工具定位问题。
定位SQL语句
  • 使用监控工具确定影响性能的SQL语句和表。
SQL查询变慢原因
  1. 索引失效:查询未使用索引或索引效率低。
  2. 多表连接:JOIN操作导致性能下降。
  3. 查询字段过多:使用SELECT *返回不必要字段。
  4. 数据量过大:单表数据量超1000万条。
  5. 索引基数太小:字段值分布不均,索引效率低。
  6. 数据库连接不足:业务量大或慢SQL占用连接。
  7. 表结构不合理:字段过长或缺乏冗余。
  8. 数据库IO或CPU负载高:资源不足影响查询速度。
  9. 长事务:事务占用连接资源。
  10. 锁竞争:并发请求争夺资源。
  11. 数据库参数设置不合理:内存、缓存、线程池配置不当。
索引失效优化
  • 分析执行计划,优化索引设计或SQL语句。
  • 避免通配符LIKE和字段函数操作。
  • 强制指定索引或优化查询条件。
特殊情况:Explain执行计划分析
  • type=index可能意味着全索引扫描,并非有效索引使用。
  • 调整查询或索引以解决。
多表JOIN优化
  • 优化查询条件,使用有效连接字段索引。
  • 限制返回字段数量。
  • 考虑表大小和结构,使用适当连接类型。
索引基数问题
  • 避免对基数低的字段建立索引。
查询字段过多优化
  • 避免使用SELECT *,只查询必要字段。
  • 垂直分表减少单表数据量。
数据量过大解决方案
  • 数据归档:移出历史数据。
  • 分库分表、分区:分散数据存储。
  • 使用第三方数据库:如OceanBase、TiDB、Elasticsearch。
数据库连接数不足
  • 分析原因,如业务量大或慢SQL。
  • 使用缓存、异步更新、拆分存储或合并更新请求。
表结构不合理
  • 重构数据库或考虑分表。
数据库IO或CPU高负载
  • 分析原因,调整资源配置。
长事务
  • 优化事务处理,避免长时间占用连接。
锁竞争
  • 优化并发控制,减少锁等待。
数据库参数设置
  • 调整内存、缓存、线程池大小等参数。

http://www.niftyadmin.cn/n/5545346.html

相关文章

ThreeJS-3D教学十五:ShaderMaterial(noise、random)

ThreeJS-3D教学十四:ShaderMaterial(length、fract、step) 上面这篇主要是操作 fragmentShader 片元着色器,实现对物体颜色的修改,这次咱们来看下修改 vertexShader 顶点着色器,这个其实就是位移各个顶点的位置。 接下来我们先介绍下 noise 噪声函数(Perlin Noise、Sim…

Windows10/11家庭版开启Hyper-V虚拟机功能详解

Hyper-V是微软的一款虚拟机软件,可以使我们在一台Windows PC上,在虚拟环境下同时运行多个互相之间完全隔离的操作系统,这就实现了在Windows环境下运行Linux以及其他OS的可能性。和第三方虚拟机软件,如VMware等相比,Hyp…

C语言 | Leetcode C语言题解之第224题基本计算器

题目&#xff1a; 题解&#xff1a; int calculate(char* s) {int n strlen(s);int ops[n], top 0;int sign 1;ops[top] sign;int ret 0;int i 0;while (i < n) {if (s[i] ) {i;} else if (s[i] ) {sign ops[top - 1];i;} else if (s[i] -) {sign -ops[top - 1…

自动化测试高级控件交互方法:TouchAction、触屏操作、点按,双击,滑动,手势解锁!

在自动化测试领域中&#xff0c;TouchAction 是一种非常强大的工具&#xff0c;它允许我们模拟用户在设备屏幕上的各种触摸事件。这种模拟不仅限于简单的点击操作&#xff0c;还包括滑动、长按、多点触控等复杂的手势。 点按与双击 点按和双击是触屏设备上最基本的操作之一。…

ARM GEC6818 LCD绘图 实心圆 三角形 五角星 任意区域矩形以及旗帜

要在ARM上实现LCD绘图&#xff0c;可以按照以下步骤进行&#xff1a; 硬件初始化&#xff1a;初始化LCD控制器和相关引脚&#xff0c;配置时钟、分辨率和颜色深度等。 内存映射&#xff1a;将LCD显示区域映射到ARM的内存地址空间中&#xff0c;可以通过ARM的内存映射机制来实现…

JavaScript中,正则表达式所涉及的api,解析、实例和总结

JS中正则的api包括以下&#xff1a; String#searchString#splitString#matchString#replaceRegExp#testRegExp#exec 1. String#search 查找输入串中第一个匹配正则的index&#xff0c;如果没有匹配的则返回-1。g修饰符对结果无影响 var string "abbbcbc"; var r…

尚硅谷大事件后台API项目(学习自用)

大事件后台API项目 1.初始化 1.1创建项目 首先创建一个文件夹名为api_server&#xff0c;然后用vscode打开这个文件夹&#xff0c;新建终端&#xff0c;在终端输入npm init -y会生成一个package.json文件&#xff0c;接着新建一个文件app.js作为入口文件&#xff0c;在终端安…

一.2.(5)共射、共集、共基三种基本放大电路的静态及动态分析;

共什么的问题&#xff1a;共什么取决于输入输出&#xff0c;共剩下的那一极 1.基本共射放大电路 见前面章节&#xff0c;不做累述 2.基本共集放大电路 列KVL方程&#xff0c;求解 AU1&#xff0c;所以又叫射极跟随器 Ib是流入基极的电流&#xff0c;Ii是从输入交流信号源流出的…