`

oracle结构设计

阅读更多

 尽管Oracle系统本身已经提供了若干种对系统性能进行调节的技术,但是,假如数据库设计本身就有问题非凡是在结构上设计得尤其糟糕,那你纵有天大的本事又能奈何? 因此,Oracle数据库的设计者完全有必要弄清楚(从项目着手设计开始)该如何创建稳固的Oracle数据结构,在保证可维护性和可扩展性的同时以最快的速度从数据库中获取信息。     让我们把笼罩在数据库技术外围的复杂理论和存心不让人明白的技术行话扔一边去,其实,说白了你就只需要记住一点,这也是牵扯到数据库性能的最重要最简单因素:磁盘I/O。磁盘I/O正是系统消耗最大的的Oracle数据库操作。Oracle设计专家在设计数据体系结构的时候务必记得:在获取所需要的信息时一定要想尽办法把磁盘访问量降到最低!     这篇文章提出了一些Oracle数据库数据体系结构设计方面的技巧,有了它们,在创造出易于维护和扩展的设计方案同时还能让数据库保持在最优化的性能水准之上。     结构设计技巧     Oracle产品中有好些可以降低SQL查询磁盘I/O量的工具。下面就是一些能极大改进Oracle 系统性能的结构设计问题。     采用多种大小尺度的数据块     你完全可以故意地把不同的表和索引结构映射到具有不同大小的表空间。这种分配方案的设计依据是表内数据行的平均长度以及整个数据库内的数据访问模式。Oracle9i给你提供了以下几种选择:2K、4K、16K甚至32K的表空间大小。这一招的实质是让表和索引仅需一次磁盘I/O就可以获取所有关联数据行的信息。     预先计算复杂的SQL查询     Oracle提供了具体化的视图和VARRAY表,通过它们就可以预建复杂的查询并汇集到单行表内,这样即时获取信息可就快多了。即时汇集是一种优异的Oracle设计。     采用内存数据缓冲     你应该知道Oracle9i答应开辟很大的内存区域以便缓冲常用索引行的信息。常用索引信息的缓冲应该是一个主要的专业设计目标,因为内存访问的速度可是磁盘访问速度的至少1万倍。Oracle数据块缓冲区越大,SQL查询的执行速度就越快。内存数据缓冲区的大小对Oracle的性能具有直接的影响,假如数据缓冲区缓冲了全部数据系统就可以达到最快的运行速度。     购买更快的处理器     Oracle数据库服务器的CPU速度对数据库性能有直接影响。高性能64位CPU的运行速度通常比32位处理器快10次。目前几乎所有的主要平台都可以采用64位处理器了,其中包括:     Windows—Intel安腾处理器
    HP—PA-8000处理器
    Solaris—500-MHz UltrASParc-iie处理器
    IBM AIX—RS/6000 PowerPC处理器
    采用64位版本的Oracle     强烈建议你在装备64位CPU体系结构的专门服务器平台上安装和运行64位的Oracle数据库系统。Oracle的64位版本可以创建大规模的SGA区域以及通常需要超过20GB内存数据缓冲区的大规模项目。32位Oracle数据库的一个严重缺陷就是SGA最大只能开辟1.7GB。     对索引使用大数据块使磁盘I/O减到最小     Oracle索引访问在Oracle数据库大小为16K和32K的情况下性能表现最好。你应该查询相应的应用程序和操作系统文档,为你的计算环境创建最大的索引表空间。     使用Oracle并行查询     所有的数据访问都应该经过调整避免大规模表扫描或者全表扫描,但在很多情况下都会有这样的查询要求,怎么办呢?你不妨保证所有的全表扫描都充分利用了Oracle并行查询机制以提高查询性能。     选择适当的SQL优化     优化器模式的选择对Oracle SQL性能具有要害的影响。对Oracle9i而言,所有查询中大约有一半左右在基于规则的优化条件下会运行得更快一些;另外一半则在基于开销的优化条件运行得最快。     包固定
    所有经常被引用的PL/SQL包都应该使用dbms_shared_pool.keep过程固定到共享池。这样做将极大地加快Oracle PL/SQL的执行速度。     在存储过程内设计所有的数据访问     最重要的设计问题之一把所有的数据库访问代码都放到PL/SQL存储过程中。     存储过程设计技巧     Oracle设计目标之一是尽可能地把所有Oracle处理代码都封装进存储过程。这样做可以获得相当大的益处,主要同性能和可维护性有关。你应该把自己的工作焦点置于这一目标之上。     数据同行为耦合     许多数据库治理员采用Oracle8的成员方法实现存储过程与数据库对象的紧密耦合。其它人则习惯于采用命名规范。例如,假设所有同customer表有关的行为都冠以该表的名字作为前缀(customer.hire、customer.give_raise等),那么你就可以查询数据字典列出某表关联的所有行为(select * from dba_objects where owner = 'CUSTOMER')而你能很轻易地辨别和重用代码。     代码隔离     因为所有的SQL都从外部程序移入了存储过程,所以应用程序也就不外乎只涉及到对存储过程的调用。正因如此,内外交换某一个数据库就很简单了。     更快的SGA存取     存储过程和触发器函数的运行速度为什么快于传统数据库操作代码呢?主要原因要涉及到Oracle SGA。在一个过程被装入SGA的共享池以后,它会一直“呆”到被调出内存给其他存储过程腾出空间为止。把过程调出内存的原则就是所谓的LRU算法。一旦装入了分享池的内存区,过程的执行速度可就快多了,这里的花招就是想办法阻止共享池承受太大的负载,因为许多存储过程会竞争有限的共享池内存量。再次重申:只要存储过程装入了共享池就要等到被调出内存为止。连续的存储过程执行就比外部代码更快。     小结     Oracle设计师的标志之一就是有能力创造出稳固、可维护和高效率的全面体系结构。今天的 Oracle设计专家需要设计出能支持每秒数千宗交易的系统同时还能实现快速的响应时间、简易的维护以及可扩展性。只要全面地了解Oracle9i 数据库的特性,采用本文建议的技巧,你肯定能建立恰当的数据模型结构

分享到:
评论
1 楼 qingfeng825 2008-11-10  
http://www.knowsky.com/388647.html

相关推荐

    oracle表结构生成工具

    总的来说,Oracle表结构生成工具是一种高效、灵活的解决方案,它简化了数据库设计流程,尤其适合那些需要频繁调整和更新表结构的项目。通过利用Excel的易用性和.NET的强大功能,它为数据库管理员和开发者提供了一种...

    ORACLE数据库设计与优化

    总结,Oracle数据库设计与优化是一个涉及多方面知识的复杂过程,包括但不限于物理结构设计、SQL优化、索引策略、存储过程使用、性能监控以及备份恢复策略。理解这些核心概念并灵活应用,将有助于构建高效、稳定且...

    Oracle课程设计.doc

    1. 数据库结构设计: - 学生表(XSB):包含学号(主键)、姓名、性别、专业等字段。 四、数据库设计流程: - 开始输入学生信息,保存到数据库,然后可以查询和显示学生信息,最后结束操作。 通过这个课程设计,...

    oracle数据库设计工具

    总的来说,Oracle数据库设计工具提供了一种独立于具体数据库环境的设计方法,使得开发者可以在安装Oracle之前预先规划数据库结构,提高了设计效率和准确性。通过熟练运用这些工具和方法,我们可以更好地应对复杂的...

    oracle数据库导出表结构到WORD文档

    在开发、文档编写或分享数据库设计时,有时我们需要将Oracle表结构导出到更便于阅读和分享的格式,比如Microsoft Word文档。这个过程可以帮助团队成员更好地理解数据库结构,也可以作为备份或审计的参考。 "oracle...

    SqlServer表结构转oracle表结构

    总的来说,SQL Server到Oracle的表结构转换涉及了数据库设计、编程和数据库管理等多个方面。C#作为通用的编程语言,提供了丰富的库和工具来处理这类任务。通过深入理解数据库结构和数据类型,结合编程技术,我们可以...

    oracle表结构导word工具

    "Oracle表结构导Word工具"就是为了解决这个问题而设计的,它能够将Oracle数据库中的表结构方便快捷地导出成Word文档,使得信息更易于阅读和共享。 这个工具的核心功能在于自动化生成表结构的详细文档,包括表名、...

    Oracle课程设计(仓库管理系统)

    Oracle课程设计(仓库管理系统) Oracle 课程设计是学习 Oracle 的最后一个结业作业,旨在设计一个完整的仓库管理系统。本系统将涵盖 Oracle 的安装与配置、创建数据库、用户与权限管理、对象创建与管理等方面的...

    Oracle 体系结构 说明

    【Oracle 体系结构详解】 Oracle数据库的体系结构是其高效管理和优化数据操作的关键。这个复杂的架构设计主要目的是为了有效地管理数据库系统中的稀缺资源,特别是内存,以提高性能并确保数据的完整性和可用性。 1...

    Oracle数据库设计文档——帮助数据库初学者了解数据库设计

    总的来说,Oracle数据库设计是一门深奥但实用的技术,它涉及到业务理解、数据建模、SQL语法、存储结构等多个方面。只有深入理解和熟练掌握这些知识点,才能设计出满足业务需求且高效运行的数据库系统。希望这份文档...

    Oracle体系结构简介

    Oracle 体系结构是一个复杂而精细的设计,旨在提供高效、安全且可扩展的数据库管理解决方案。以下是对Oracle体系结构主要组成部分的详细说明: 1. **数据库**:数据库是Oracle的核心,它是一个逻辑数据集合,包含了...

    Oracle11g体系结构图

    描述:“Oracle11g体系结构图,oracle结构清清楚楚” **一、Oracle11g体系结构概览** Oracle11g是Oracle公司推出的一款高性能、高可用性和高安全性的关系型数据库管理系统。其体系结构复杂且功能强大,主要包括...

    Oracle课程设计管理系统

    ER图用于直观地表示实体、属性和关系,帮助设计者更好地理解数据结构。DDL脚本则用于创建数据库对象,如表、视图、存储过程等,它是数据库实际创建和操作的基础。 最后,**测试与优化**是确保系统质量的关键步骤。...

    oracle课程设计案例精编

    Oracle课程设计案例精编教程是针对学习Oracle数据库管理和开发的学员所准备的一份宝贵资源。这份教程通过一系列的实例,帮助读者深入理解Oracle数据库的工作原理和应用技巧,从而提升在实际工作中的技能。 1. ...

    Oracle数据库表结构导出工具

    "Oracle数据库表结构导出工具"就是为此目的设计的实用程序,它能够方便地将表结构转换成易于查看和处理的Excel文件。 DBExport是一个这样的工具,正如其名称"DBExport2.51 For ORACLE"所示,它专门针对Oracle数据库...

    ORACLE课程设计模板

    5. **数据库设计**:图书管理系统的数据库设计包括定义实体(如图书、作者、出版社等)、确定实体间的关系以及设计合理的数据结构。这涉及到ER图(实体关系图)的绘制和表的规范化。 6. **事务处理**:图书管理操作...

    Oracle课程设计毕业设计选题系统

    1. **表结构设计**:根据需求分析,创建相应的数据库表,如用户表、选题表、状态变更表等,合理设计字段类型、长度和约束,以满足业务需求。 2. **索引优化**:为了提高查询速度,可能需要在频繁查询的字段上创建...

    Oracle 课程设计案例精编

    "Oracle 课程设计案例精编"是一份针对学习者深入理解和实践Oracle技术的教程,特别适合大学数据库课程设计项目。这个课程设计旨在帮助学生掌握Oracle的核心概念、语言语法以及实际操作技巧。 在Oracle课程设计中,...

    Oracle课程设计 Oracle项目实例 Oracle编程

    本Oracle课程设计和项目实例集旨在为初学者提供深入学习和实践的平台,帮助他们掌握Oracle的核心技术和实际应用。 首先,Oracle课程设计部分涵盖了数据库的基础理论和关键概念。这包括SQL(结构化查询语言)的学习...

    ORACLE课程设计案例精编

    本"ORACLE课程设计案例精编"旨在帮助初学者深入理解和掌握Oracle的核心技术,通过实例来实践理论知识,提升数据库管理与应用能力。 1. 数据库基础知识:Oracle数据库的基本概念,包括表空间、数据文件、控制文件、...

Global site tag (gtag.js) - Google Analytics