首页 > 数据库 >oracle大表性能优化

oracle大表性能优化

时间:2024-07-24 13:17:34浏览次数:14  
标签:LOB 查询 索引 TEST oracle TABLE 优化 大表

1 不修改表结构的优化

1.1 收缩表,降低高水位线

ALTER TABLE TEST ENABLE ROW MOVEMENT;
ALTER TABLE TEST SHRINK SPACE;

1.2 对表收集统计信息

BEGIN
DBMS_STATS.GATHER_TABLE_STATS(ownname => user,
tabname => 'TEST');
END;

1.3 使用oracle的并行查询功能

SELECT /*+ parallel(4)*/* FROM test;

1.4 OR查询条件使用union all替代

1.5 多表联合查询时,在子查询中先写好过滤条件再关联别的表

1.6 DML比较慢时而且并发访问比较低的情况下,会话开启并行DML功能。

Alter session enable parallel dml;

1.7 在insert时使用直接加载和nologging方式插入数据

Insert /*+ append parallel(4)*/ into test nologging select * from YYY;

1.8 update大量数据时,可以使用先删除后插入的做法代替

2 修改表结构的优化

2.1 在筛选(where)少部分数据的字段上建立索引

2.2 如果查询(select)或者排序(order by)涉及的字段很少,可以在这些字段建立索引

2.3 如果建立了索引,索引没有生效,查询索引状态是否正常。索引为'UNUSABLE'状态要重建索引

2.4 往目标表插入数据时,可以将索引置为'UNUSABLE'状态,等插入数据后,再重建索引

alter index IDX_TEST unusable;

2.5 对表根据业务需求进行分区

2.6 尽可能的使用 varchar 代替 char ,因为首先变长字段存储空间小,可以节省存储空间

2.7 涉及LOB字段类型的表,将LOB字段放在一个单独的表空间。因为oracle默认不会缓存大于4000字节的LOB字段,直接从磁盘读写LOB。放在单独的表空间,从而减少对其他大部分对象的影响

2.8 查询表的行迁移情况,如果表行迁移的数据过多,就需要重新建表,同时合适设置PCTFREE,避免更新再次导致行迁移

3 在存储过程的优化

3.1 使用绑定变量的方式输入变量值

3.2 将大表按使用到的字段拆分成临时表(TEMPORARY TABLE)。后面使用临时表数据而不是大表数据参与计算。临时表产生的undo数据设置为放在临时表空间。拆分后,要对临时表收集统计信息

--临时表产生的undo数据设置为放在临时表空间
ALTER SESSION SET TEMP_UNDO_ENABLED = TRUE;

标签:LOB,查询,索引,TEST,oracle,TABLE,优化,大表
From: https://www.cnblogs.com/study9196/p/18320428

相关文章

  • 面试常考--前端性能优化之大文件上传
    大文件上传是前端开发中常见的需求之一,特别是在需要处理高清图片、视频或其他大型文件时。优化大文件上传不仅可以提升用户体验,还能有效减轻服务器负担。本文将深入探讨大文件上传的几种常见优化技术,包括文件切片与并发上传、断点续传、后台处理优化、安全性考虑和用户体验优化。......
  • Oracle 中 LISTAGG 函数的介绍以及使用
    原文地址:https://www.cnblogs.com/codeLearn/p/17931924.htmlLISTAGG函数介绍listagg函数是Oracle11.2推出的新特性。其主要功能类似于wmsys.wm_concat函数,即将数据分组后,把指定列的数据再通过指定符号合并。LISTAGG使用listagg函数有两个参数: 1、要合并的......
  • Android超复杂布局加载速度优化
    一、概述有时候由于实际业务的需要,或者产品经理或设计师考虑的不够全面,会导致某一个或某些页面的布局超级复杂。这些超级复杂的UI在经过程序员通过传统布局优化过后仍然是复杂的(优化布局层级、优化层级布局数量等)。这就会导致布局加载速度过于缓慢。直接的结果就是打开A......
  • SQL 命令在手动运行时工作正常(SQL Developer),但在 Python 的 oracledb 模块中给出 ORA-
    我正在使用OracleSQL数据库,并且我想运行该命令ALTERSESSIONSETNLS_DATE_FORMAT='YYYY-MM-DD';当我从SQLDeveloper应用程序手动运行它时,它工作正常。但是,当我使用oracledb模块从Python运行它时,出现以下错误:ErrorrunningSQLscript:ORA-00922:mi......
  • 基于树种算法优化的TSP问题求解
    智能优化算法应用:基于树种算法的TSP问题求解-附代码文章目录智能优化算法应用:基于树种算法的TSP问题求解-附代码1.TSP问题3.树种算法4.实验参数设定5.算法结果6.Matlab代码7.Python代码摘要:TSP是数学领域内一道著名的难题之一,如何求解一直是学术界研究的热点问......
  • 基于平衡优化器算法优化的TSP问题求解
    智能优化算法应用:基于平衡优化器算法的TSP问题求解-附代码文章目录智能优化算法应用:基于平衡优化器算法的TSP问题求解-附代码1.TSP问题3.平衡优化器算法4.实验参数设定5.算法结果6.Matlab代码7.Python代码摘要:TSP是数学领域内一道著名的难题之一,如何求解一直是......
  • 单调队列优化DP
    通法:写的时候要灵活变通(可以考虑类似于双指针的技巧,如跳房子)。P3957[NOIP2017普及组]跳房子套个二分,然后由于与位置相关,所以维护一个左端点和右端点,右端点考虑最短步长会不会跳过头,左端点考虑最长步长会不会跳不到。修剪草坪满足连续性质,所以一次考虑一段,\(f_i\)保证\(......
  • 探索Java虚拟机优化技术:从基础到高级
    探索Java虚拟机优化技术:从基础到高级大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Java虚拟机(JVM)的优化技术,从基础到高级,为Java程序的高效运行提供全面指导。一、JVM概述Java虚拟机是Java程序的运行环境,负责加载字节码、执行代码、......
  • 深度模型中的优化 - 引言篇
    序言在人工智能与机器学习的广阔领域中,深度模型作为核心技术之一,正引领着智能应用的新纪元。深度模型通过构建多层神经网络,模拟人脑的学习与推理过程,以处理复杂的数据模式与任务。然而,这些强大能力的背后,离不开高效的优化算法作为支撑。优化,作为深度模型训练的核心环节,旨在......
  • 记录一下oracle 19c的集群节点移除、新增操作
    虽然掌握得不够深入,但越来越讨厌oracle数据库这个软件了,实在不愿意再孤岛这个笨重、复杂的oracle了。今天花了好几个小时操作一个实验环境的迁移、配置,记录几个步骤吧,也许后续会有用。■查看数据库配置信息[oracle@node1:0~]$srvctlconfigdatabase-dblikingdbDatabaseu......