当前位置:  数据库>oracle

Oracle平台应用数据库系统的设计与开发

    来源: 互联网  发布时间:2014-09-07

    本文导语:  正在看的ORACLE教程是:Oracle平台应用数据库系统的设计与开发。Oracle是目前应用最广泛的数据库系统。一个完整的数据库系统包括系统硬件、操作系统、网络层、DBMS(数据库管理系统)、应用程序与数据,各部分之间是互相依...

正在看的ORACLE教程是:Oracle平台应用数据库系统的设计与开发。Oracle是目前应用最广泛的数据库系统。一个完整的数据库系统包括系统硬件、操作系统、网络层、DBMS(数据库管理系统)、应用程序与数据,各部分之间是互相依赖的,对每个部分都必须进行合理的配置、设计和优化才能实现高性能的数据库系统。本文讨论笔者使用Oracle开发局域网中、小型数据库应用中,系统硬件的选择与使用、应用数据库系统设计与开发方面的一些心得和建议。应用数据库系统包含应用数据库和应用两方面的内容,应用数据库就是生产数据库,与系统数据库相对。

  系统硬件的选择与使用

  与数据库系统密切相关的硬件主要有CPU、内存、集群、存储设备等,这里不对集群进行讨论。

  1、CPU 

  CPU的数目和速度直接影响数据库操作的速度,Oracle数据库提供并行查询选项,允许SQL操作以协同方式在多个CPU上执行,可以很大程度的发挥多CPU的性能。为系统添加CPU前,首先要对应用程序的SQL代码做优化,提高应用程序的效率,质量低劣的应用可能会引起CPU资源的无谓的消耗;其次,要了解操作系统对CPU数目的限制及系统的可扩展性。在系统CPU资源已定的情况下,要对各类应用进行分析,在保证关键应用正常运行的前提下,尽可能将大量占用CPU资源的应用放在系统相对空闲的时候进行。良好的工作调度可以有效减少对CPU的竞争使用,加快系统的响应时间。

  2、内存

  数据库系统中,应保证有足够大的内存。在UNIX系统中,如果系统的物理内存小于1GB,可将交换区的大小设为内存的4倍,否则,可设为内存的2倍,交换区要放在磁盘速度最快的硬盘上。Oracle 的SGA区大小直接关系到数据库操作的性能,一般来说,SGA区的大小可设为系统可用内存的55%到57%,SGA区过多占用系统内存反而会降低性能。在应用系统运行中,应定期监测系统的内存使用情况,对关键应用进行分析,根据应用适时调整SGA区各部分的大小。Oracle9i可在不重新启动数据库的情况下修改SGA区的参数,实时改变SGA区的大小。

  3、存储设备

  在网络时代,信息资源的积累和广泛应用对数据存储技术的发展提出了更大的挑战,数据存储模式从传统的总线连接模式进入了网络存储模式。但存储设备依然是硬盘、磁带(带库)、磁盘阵列,在中、小型数据库应用中传统存储模式仍占主导地位。

  磁盘I/O是数据库操作的瓶颈之一,磁盘的合理选择和使用在数据库系统中显得尤为重要。在最初做数据库系统规划时,应充分考虑到系统的容量和预期的增长,尽可能为以后的扩展留足空间。在硬盘和磁盘阵列的选择与使用中,应注意以下几点: 

  ·选择支持热插拔功能的硬盘,这样在出现硬盘Oracle 平台应用数据库系统的设计与开发失败时,可以在系统正常运行的情况下更换硬盘; 

  ·不要选择太大的硬盘,切记对Oracle 应用程序,1~4GB大小的硬盘是比较合适的,最好购买大量的中小型硬盘,这样在配置RAID时可提供更大的灵活性; 

  ·如果选用了磁盘阵列,对于Oracle数据库应用,如果经费能够支持,RAID 0+1是最佳的配置方法。在RAID 5中,读操作性能得到了一定的改善,但写性能损失很大,如果某个硬盘失败,硬盘重建的工作量非常大,RAID 5 适用于DSS(决策支持系统)应用,对OLTP(联机事物处理)应用不太合适; 

  ·在实现RAID时,要正确地选择分条的大小,决定分条大小的三个主要因素是:应用程序的特性(DSS、OLTP、批处理)、操作系统与数据库的数据块大小、磁盘阵列中的硬盘数目。数据库的数据块大小应是操作系统数据块大小的整数倍,同样分条大小也必须是操作系统数据块大小的整数倍。如果使用裸设备,分条大小应是操作系统物理数据块的大小。分条可按照水平方向进行,也可按照垂直方向进行。水平分条跨越每个硬盘控制器进行,垂直分条跨越整个硬盘集合进行,分条集合中的成员数应不大于硬盘控制器数。OLTP应用程序,数据访问的数据量不大,一般可选择32KB 或64KB 的分条大小,而DSS应用程序访问的数据量大,可考虑使用64KB、128KB或256KB的分条大小。

  应用数据库的设计与开发

  Oracle数据库软件安装和配置完成后,就进入了应用数据库的设计阶段,应用数据库设计包括逻辑设计与物理设计。合理的逻辑设计会大大提高数据库的性能,增强数据库的可维护性。在设计中根据应用,抽象出实体关系模型,将实体关系图映射为标准化(数据完整、与应用无关、存储优化)的关系模型(数据库对象),当前有一些辅助工具(Oracle Designer等)来实现实体关系图到SQL代码的映射;数据库的物理设计就是数据库对象的存储设计,即如何为数据库对象分配存储空间。

  在进行数据库对象的设计前,数据库的管理和开发人员对应用和应用的数据及其应用关系要有一个详尽的理解,根据应用进行数据库对象的规划和设计,大概包含以下几个方面: 

  ·确定需建立的数据库用户,明确用户的系统权限和表空间限额,为用户设计资源限制profile; 

  ·确定应用数据应分多少个表进行设计,各表分别属于的用户,各用户对各个表的操作权限; 

  ·明确各表的结构,确定表的主键及约束;

  ·明确哪些表是应用运行的关键表,哪些是事务表; 

  ·分析哪些表是主表,哪些表是从表,确定表和表之间的外键约束,选择合适的表作为表连接的驱动表; 

  ·根据应用,确定在哪些表上对哪些列建立合适的索引;

  ·根据表和索引的设计,确定要创建的表空间和回滚段,为表空间和回滚段选择合适的磁盘,尽可能创建本地管理的表空间,减少数据库空间管理方面的工作; 

  ·明确需要编写的触发器及过程; 

  ·为数据库对象选择备份和恢复策略。

  在数据库设计阶段,有时未必能完全确定合适的数据库对象的特征,应用设计和开发中还可能发现不合适的地方,需要回过头来进行调整和修改。但设计阶段的工作越细致,出现问题的可能性就越小,工作的效率就越高。

  创建数据库对象时,要根据数据库对象的特点,结合存储设备的大小、数量及速度等,对数据库对象分类进行存储,最大限度地消除或减少资源竞争。在数据库对象创建时主要应遵循以下原则: 

  ·应用数据应放在单独的表空间,不要将应用数据放在系统表空间,为防止无意的使用系统表空间,将应用用户的系统表空间限额设为0。

  ·索引和表应放在位于不同硬盘上的不同的表空间,这样会提高数据库操作的速度。

  ·需要同时被访问的表要分开存放,利于并发访问的实施。

  ·如果磁盘数量有限,可把不常联合访问的表放在相同的磁盘上。

  ·预分配的原则。创建数据库对象(表空间、回滚段、表、索引等)时,根据对象的情况设置合适的storage参数非常重要。创建对象设计时,对对象的容量和预期的增长有一个估计,这样才能确定存储参数的大小。一般来说,应预先给表和索引等数据库对象分配足够的空间,数据库段不要太多地做动态扩展,因为会影响数据库性能。一个段(segment)由一个区(extent)构成是最理想的,initial 参数可以稍大一点,如果可能,可设为最大容量的大小,initial必须是db_block_size的整数倍;next参数的设置比较灵活,根据应用进行相应的设置,但也必须是db_block_size的整数倍;为了减少数据库碎片的产生,pctincrease参数应该尽量设为0;更新操作比较少的段,pctfree要设置得小一点,更新操作很多的段要设置得大一些;inittrans和freelists的值要相等,大小与并发事务数相关。

  ·分而治之的原则。大的数据库表和索引可考虑进行分区存放,不同的分区可位于不同的磁盘上,更好地均衡I/O。Oracle可以只对表的某些分区进行查询,这样会提高查询的速度;可对分区进行数据的删除、装载,还可以移动分区,对表的管理和控制具有更大的灵活性;可以有更多的策略选择,更好地执行备份和恢复操作。注意,对某些分区进行操作后,在Oracle8i下必须重建全局索引。

  ·大小和增长趋势类似的表最好放在相同的表空间,可以有效控制硬盘碎片的产生,提高空闲块的可重用性。

  ·相同备份和恢复策略的表最好放在同一个表空间,这样有助于备份和恢复工作的完成。

  ·对响应时间要求苛刻的应用所访问的对象放在速度快的磁盘上。

    
 
 

您可能感兴趣的文章:

  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • 请问su oracle 和su - oracle有什么不同? iis7站长之家
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle收购TimesTen 提高数据库软件性能
  • 卸载oracle数据库
  • Oracle数据库恢复后心得
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle数据库运行Oracle form时避免出现提示信息
  • Oracle欲收购开源数据库MySQL未果
  • 如何在JBuilder中连接Oracle数据库?
  • Oracle数据库访问参数文件的顺序
  • 循序渐进学习Oracle数据库
  • 哪位兄弟用过oracle的J2EE应用服务器IAS?据说“在应用服务器领域:Oracle第一,IBM第二,BEA第三”
  • Oracle、应用服务器(weblogic)一般安装在那个目录下好!
  • 请问保存文章内容的字段应用什么类型的(oracle),急!!!
  • unix通过crontab 定时启动oracle应用程序??????????
  • 成功实现应用程序和Oracle客户端一起打包
  • ORACLE数据库应用开发常见问题及排除
  • Oracle一个用户如何访问其它用户的表应用指南
  • Linux(Oracle系统在上面)系统无缘无故死机 , 可能是由于应用程序引起 , 可是由于重新启动查不到相关信息 , 不知道在哪里有记录系统CPU Lo
  • oracle异常(预定义异常,自定义异常)应用介绍
  • 详解如何应用改变跟踪技术加速Oracle递增备份
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  • 将Oracle 8i数据成功移植Oracle 10g的方法
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • 紧急求救:对Oracle数据库中long 型数据进行模糊查询 如何查?
  • Linux下Oracle数据库,dbstart持续不动,数据库无法启动解决
  • 紧急求救:jsp对Oracle数据库中long 型数据进行模糊查询 如何查?
  • 请问:ORACLE中的数据取出来后,需不需要进行一定的转换才能变为C语言的数据类型啊?
  • 手把手教你Oracle数据库导出数据库结构到PowerDesigner
  • Oracle与FoxPro两数据库的数据转换步骤
  • Oracle 对数据文件大小的限制
  • 数据库服务器 Oracle
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • 取数据库前几条数据(sql server、oracle、mysql)的sql写法
  • oracle数据库入门知识简述
  • linux下用什么办法连接oracle数据库并且读取数据呢?(用c++代码实现时)
  • 深入理解Oracle数据库的启动和关闭
  • 轻松理解Oracle数据库中的物理结构
  • 用java怎样实现oracle数据库表和excel数据表的转换
  • 高手相送,jsp连接oracle数据库后,显示数据为乱码?
  • jbuilder6 中怎样引入oracle 数据访问包
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • ORACLE日期相关操作
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3