Oracle数据库设计开发阶段性能优化策略

引言

Oracle是目前使用最为广泛的大型数据库管理系统,提高Oracle数据库系统的运行效率,是整个计算机信息系统高效运转的前提和保证。影响Oracle数据库应用系统性能的因素很多,既有软件方面的因素,也包括数据运行的硬件环境、网络环境、数据库管理和维护方面的因素等。数据库系统设计开发阶段是Oracle应用优化的最佳阶段,也是主动优化阶段,能达到以最小成本获得最大性能增益的目的。通过对其逻辑存储结构和物理存储结构设计进行优化,使之在满足需求条件下,时空开销性能最佳,可以解决数据库系统运行过程中性能的渐进性下降或性能突降等问题,以保证系统运行的优良性能。

Oracle数据库的逻辑结构和物理结构

Oracle 数据库的逻辑结构是由一些数据库对象组成,如数据库表空间、表、索引、段、视图、存储过程、触发器等。数据库的逻辑存储结构(表空间等)决定了数据库的物理空间是如何被使用的,数据库对象如表、索引等分布在各个表空间中。

Oracle 数据库的物理结构从操作系统一级查看,是由一个个的文件组成,从物理上可划分为:数据文件、日志文件、控制文件和参数文件。数据文件中存放了所有的数据信息;日志文件存放数据库运行期间产生的日志信息,它被重复覆盖使用,若不采用归档方式的话,已被覆盖的日志信息将无法恢复;控制文件记录了整个数据库的关键结构信息,它若被破坏,整个数据库将无法工作和恢复;参数文件中设置了很多Oracle 数据库的配置参数,当数据库启动时,会读取这些信息。

逻辑结构的优化

逻辑结构优化用通俗的话来说就是通过增加、减少或调整逻辑结构来提高应用的效率,下面通过对基本表的设计及索引、聚簇的讨论来分析ORACLE逻辑结构的优化。

1、基本表扩展

数据库性能包括存储空间需求量的大小和查询响应时间的长短两个方面。为了优化数据库性能,需要对数据库中的表进行规范化。一般来说,逻辑数据库设计满足第三范式的表结构容易维护且基本满足实际应用的要求。所以,实际应用中一般都按照第三范式的标准进行规范化,从而保证了数据库的一致性和完整性,设计人员往往会设计过多的表间关联,以尽可能地降低数据冗余。但在实际应用中这种做法有时不利于系统运行性能的优化:如过程从多表获取数据时引发大量的连接操作,在需要部分数据时要扫描整个表等,这都消耗了磁盘的I/O 和CPU 时间。

为解决这一问题,在设计表时应同时考虑对某些表进行反规范化,方法有以下几种:一是分割表。分割表可分为水平分割表和垂直分割表两种:水平分割是按照行将一个表分割为多个表,这可以提高每个表的查询速度,但查询、更新时要选择不同的表,统计时要汇总多个表,因此应用程序会更复杂。垂直分割是对于一个列很多的表,若某些列的访问频率远远高于其它列,就可以将主键和这些列作为一个表,将主键和其它列作为另外一个表。通过减少列的宽度,增加了每个数据页的行数,一次I/O就可以扫描更多的行,从而提高了访问每一个表的速度。但是由于造成了多表连接,所以应该在同时查询或更新不同分割表中的列的情况比较少的情况下使用。二是保留冗余列。当两个或多个表在查询中经常需要连接时,可以在其中一个表上增加若干冗余的列,以避免表之间的连接过于频繁,一般在冗余列的数据不经常变动的情况下使用。三是增加派生列。派生列是由表中的其它多个列的计算所得,增加派生列可以减少统计运算,在数据汇总时可以大大缩短运算时间。

因此,在数据库的设计中,数据应当按两种类别进行组织:频繁访问的数据和频繁修改的数据。对于频繁访问但是不频繁修改的数据,内部设计应当物理不规范化。对于频繁修改但并不频繁访问的数据,内部设计应当物理规范化。有时还需将规范化的表作为逻辑数据库设计的基础,然后再根据整个应用系统的需要,物理地非规范化数据。规范与反规范都是建立在实际的操作基础之上的约束,脱离了实际两者都没有意义。只有把两者合理地结合在一起,才能相互补充,发挥各自的优点。

时间: 2024-12-31 02:52:41

Oracle数据库设计开发阶段性能优化策略的相关文章

Android高级开发之性能优化典范

本章介绍android高级开发中,对于性能方面的处理.主要包括电量,视图,内存三个性能方面的知识点. 1.视图性能 (1)Overdraw简介 Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布 局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,表现为应用卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减

Oracle数据库设计要做到五戒

众所周知,数据库设计的好坏直接关系到数据库运行的效率.根据笔者的经验,对于提升数据库性能来说,合理的数据库设计,比升级服务器的硬件配置,还要来的有效.但是,笔者无论是在跟同事合作,又或者是在论坛上跟相关同行交流的时候,总是会发现有些人有一些不好的数据库设计习惯,影响了数据库的性能,增加了数据库管理员的工作量. 笔者认为,为了提升数据库的性能,在Oracle数据库设计的时候,要做到五戒. 一戒:在小型表上不要建立索引. 毋庸置疑,索引可以提高数据库查询的效率.但是,俗话说,过之则不及.索引也必须用

探讨SQL Server批量向数据库插入数据的性能优化问题

昨天下午快下班的时候,无意中听到公司两位同事在探讨批量向数据库插入数据的http://www.aliyun.com/zixun/aggregation/14109.html">性能优化问题,顿时来了兴趣,把自己的想法向两位同事说了一下,于是有了本文. 公司技术背景:数据库访问类(xxx.DataBase.Dll)调用存储过程实现数据库的访问. 技术方案一: 压缩时间下程序员写出的第一个版本,仅仅为了完成任务,没有从程序上做任何优化,实现方式是利用数据库访问类调用存储过程,利用循环逐条插入.

ORACLE数据库应用开发常见问题及排除_oracle

正在看的ORACLE教程是:ORACLE数据库应用开发常见问题及排除.硬件平台:SUN Ultra Enterprise 3000  操作系统:Solaris 2.5(中文简体)  磁盘:4.2GB  内存:256MB  ORACLE B版本:7.3.2.1  安装目录:/database/oracle(/database下有2GB空间) 安装产品:ORACLE RDBMS,SQL*NET,SQL*Plus,Pro *C,Server Manager等 产品安装正常,运行稳定. 二.应用开发中常

新站优化不同阶段的优化策略和优化方法要待时而动

众所周知,新站上线尤其面对百度进行seo优化,很多时候我们显得非常的力不从心,因为百度对于新站的考核周期非常之长,内容质量较好至少1个月以上,内容质量低下的三个月可能都不会进入前100位,所以笔者认为优化百度一定要遵循其相关规则,笔者近期优化了一个建材类的站点历经一个半月主关键词已经进入百度第六页,下面笔者将和各位分享下新站如何快速进入百度前100位. 第一,新站上线初期就是积累权重培养信任度的关键时期,新站上线我们做的最多的事情就是努力为网站定时定量的更新高质量的原创性的文章,这个是不可缺少的

Android编程开发之性能优化技巧总结_Android

本文详细总结了Android编程开发之性能优化技巧.分享给大家供大家参考,具体如下: 1.http用gzip压缩,设置连接超时时间和响应超时时间 http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读. 2.listview 性能优化 1).复用convertView 在getItemView中,判断convertView是否为空,如果不为空,可复用.如果couvertview中的view需要添加listern

Oracle数据库中SQL语句的优化技巧_oracle

在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.

Android编程开发之性能优化技巧总结

本文详细总结了Android编程开发之性能优化技巧.分享给大家供大家参考,具体如下: 1.http用gzip压缩,设置连接超时时间和响应超时时间 http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读. 2.listview 性能优化 1).复用convertView 在getItemView中,判断convertView是否为空,如果不为空,可复用.如果couvertview中的view需要添加listern

谈大集中系统的性能优化策略

1.1 前言 税务大集中信息系统性能优化方面,我们从技术和业务两个方面,进行前后台架构如何优化.多层架构各层如何优化.编码程序如何优化等,以及对业务的改进和系统功能优化. 技术方面,除了考虑硬件平台.系统资源外,考虑软硬件资源分配等系统性能优化手段,以及应用架构体系.数据库架构的优化;另外,从应用系统编码方面,考虑编码的调整与优化;业务方面,考虑业务规则的调整优化. 1.2 正文 税务大集中信息系统的基本性能保障目标,最起码达到几点要求: 前台税务登记保存时间不超过3秒. 前台申报开票保存时间不