ORACLE 性能优化 高水位调节

2024-05-01 13:28

本文主要是介绍ORACLE 性能优化 高水位调节,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

            当我需要去做优化时,有一个固定的优化思路:SQL优化->索引优化->分区优化->优化器hints优化

SQL 语句优化:

          1.如有 子查询 但是没有with as 临时表,优先考虑用with as临时表,来代替子查询,不仅增加代码的易读性,更重要的是临时表是一次扫描,多次使用,这也是提升性能的原因-达到了'少读'的目标;

2.就是select,select后面避免使用*,查什么字段就写什么字段,因为使用*是走全表扫描的,不走索引

3.最有效率的表名顺序,oracale的解析器按照从右到左的顺序处理FROM子句中的表名,所以把数据记录最少的放在最后面,如果有三张表以上的表,那就把交叉表放在最后面;

4.,join 之前先去重或者过滤一下,这样join时连接表的数据量更少,连接过程就优化了

5.然后where过滤也是有顺序的,优先吧过滤数据更多的条件放在最后面,避免去使用模糊查询like,in,exists,not等以及避免一些索引列上进行计算,这类情况下会造成索引失效,走全表扫描,增加I/O读取次数。

索引优化:

 1.需要建索引的情况,经常需要搜的列,建索引可以加快查询速度,经常需要join连接的列,建索引可以加快连接速度,经常使用where的子句中的列,建索引可以加快判断速度,经常group by,order by 的列,建索引可以加快排序的速度

分区优化:

如果原表是没有建分区的话,会考虑重新创建一个一模一样的表并选择合理的分区方式,分区的方式有范围分区,列表分区,哈希分区,组合分区,interval分区,然后再把数据导进来,alter table rename 来修改原表名字成为历史表,再修改新表名字成为需求表

考虑到  数据量过于大了,可以先考虑先分表再分区提升性能,分表是通过定时任务,使用存储过程执行动态sql实现每年or每半年,每季度,根据实际情况来定,进行分表存储,每年的数据存储在对应的分表之中,如果数据量还是大,就要考虑到分区了,这个时候可以选择按月分区

优化器hints的优化

当遇到SQL执行计划不好的情况,应优先考虑统计信息等问题,而不是直接加Hint了事。如果统计信息无误,应该考虑物理结构是否合理,即没有合适的索引。只有在最后仍然不能SQL按优化的执行计划执行时,才考虑Hint。

Hint的弊端

  • Hint是比较"暴力"的一种解决方式,不是很优雅。需要开发人员手工修改代码。

  • Hint不会去适应新的变化。比如数据结构、数据规模发生了重大变化,但使用Hint的语句是感知变化并产生更优的执行计划。

  • Hint随着数据库版本的变化,可能会有一些差异、甚至废弃的情况。此时,语句本身是无感知的,必须人工测试并修正

这篇关于ORACLE 性能优化 高水位调节的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951803

相关文章

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

服务器雪崩的应对策略之----SQL优化

SQL语句的优化是数据库性能优化的重要方面,特别是在处理大规模数据或高频访问时。作为一个C++程序员,理解SQL优化不仅有助于编写高效的数据库操作代码,还能增强对系统性能瓶颈的整体把握。以下是详细的SQL语句优化技巧和策略: SQL优化 1. 选择合适的数据类型2. 使用索引3. 优化查询4. 范式化和反范式化5. 查询重写6. 使用缓存7. 优化数据库设计8. 分析和监控9. 调整配置1、

Java中如何优化数据库查询性能?

Java中如何优化数据库查询性能? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Java中如何优化数据库查询性能,这是提升应用程序响应速度和用户体验的关键技术。 优化数据库查询性能的重要性 在现代应用开发中,数据库查询是最常见的操作之一。随着数据量的增加和业务复杂度的提升,数据库查询的性能优化显得尤为重

打包体积分析和优化

webpack分析工具:webpack-bundle-analyzer 1. 通过<script src="./vue.js"></script>方式引入vue、vuex、vue-router等包(CDN) // webpack.config.jsif(process.env.NODE_ENV==='production') {module.exports = {devtool: 'none

ORACLE 、达梦 数据库查询指定库指定表的索引信息

在Oracle数据库中,索引是一种关键的性能优化工具,通过它可以加快数据检索速度。在本文中,我们将深入探讨如何详细查询指定表的索引信息,以及如何利用系统视图和SQL查询来获取这些信息。 索引在数据库中的重要性 索引是一种数据结构,用于加快数据库表中数据的检索速度。它类似于书籍的目录,可以帮助数据库引擎快速定位数据行,特别是在大型数据集合下,其作用尤为显著。 查询指定表的索引信息 在Orac

Clickhouse 的性能优化实践总结

文章目录 前言性能优化的原则数据结构优化内存优化磁盘优化网络优化CPU优化查询优化数据迁移优化 前言 ClickHouse是一个性能很强的OLAP数据库,性能强是建立在专业运维之上的,需要专业运维人员依据不同的业务需求对ClickHouse进行有针对性的优化。同一批数据,在不同的业务下,查询性能可能出现两极分化。 性能优化的原则 在进行ClickHouse性能优化时,有几条

群体优化算法---电磁共振优化算法(EROA)介绍包含示例滤波器设计

介绍 电磁共振优化算法(Electromagnetic Resonance Optimization Algorithm, EROA)是一种新型的元启发式优化算法,其灵感来源于电磁共振现象。电磁共振是一种物理现象,当一个系统在特定频率下响应最大时,这个频率被称为共振频率。在优化算法中,共振频率可以用来引导搜索过程,提高优化效率 EROA 算法的基本原理 种群初始化: 在搜索空间内随机生成一定

怎么优化ArcEngine组件开发mfc程序界面?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述   这种VS2015 + ArcEngine10.2开发的mfc小程序怎么优化界面,使系统看上去更美观 如上问题有来自我自身项目开发,有的收集网站

oracle数据导出txt及导入txt

oracle数据导出txt及导入txt ORACLE数据导出TXT及从TXT导入: 导出到TXT文件: 1、用PL/SQL DEV打开CMD窗口。 2、spool d:/output.txt; 3、set heading off; --去掉表头 4、select * from usergroup; 5、spool off; www.2ct

Linux开机自动启动ORACLE设置

Redhat init简介: Linux启动时,会运行一个init程序,然后由init来启动后面的任务,包括多用户环境(inittab中设定)和网络等。运行级就是当前程序运行的功能级别,这个级别从1到6,具有不同的功能。这些级别在/etc/inittab(其他发行版这个文件位置不同)中指定,该文件就是init程序寻找的主要文件。最先运行的服务放在/etc/rc.d目录下。