对于大表的一般性优化措施
1. 表结构设计原则:数据类型尽量小(占用空间少,磁盘读入较快)、单独设置表空间
2. 应用程序:合理设计业务、SQL语句优化
3. 合理使用索引:只创建需要的索引,根据需要使用多列索引,存放于单独的表空间
4. 数据库设置:内存分配、查询优化器、分区、分表等
5. 硬件环境:硬盘、CPU、内存、网络带宽
一、逻辑结构的优化1、基本表扩展
数据库性能包括存储空间需求量的大小和查询响应时间的长短两个方面。为了优化数据库性能,需要对数据库中的表进行规范化。一般来说,逻辑数据库设计满足第三范式的表结构容易维护且基本满足实际应用的要求。所以,实际应用中一般都按照第三范式的标准进行规范化,从而保证了数据库的一致性和完整性,设计人员往往会设计过多的表间关联,以尽可能地降低数据冗余。但在实际应用中这种做法有时不利于系统运行性能的优化:如过程从多表获取数据时引发大量的连接操作,在需要部分数据时要扫描整个表等,这都消耗了磁盘的I/O 和CPU 时间。
为解决这一问题,在设计表时应同时考虑对某些表进行反规范化,方法有以下几种:一是分割表。分割表可分为水平分割表和垂直分割表两种:水平分割是按照行将一个表分割为多个表,这可以提高每个表的查询速度,但查询、更新时要选择不同的表,统计时要汇总多个表,因此应用程序会更复杂。垂直分割是对于一个列很多的表,若某些列的访问频率远远高于其它列,就可以将主键和这些列作为一个表,将主键和其它列作为另外一个表。通过减少列的宽度,增加了每个数据页的行数,一次I/O就可以扫描更多的行,从而提高了访问每一个表的速度。但是由于造成了多表连接,所以应该在同时查询或更新不同分割表中的列的情况比较少的情况下使用。二是保留冗余列。当两个或多个表在查询中经常需要连接时,可以在其中一个表上增加若干冗余的列,以避免表之间的连接过于频繁,一般在冗余列的数据不经常变动的情况下使用。三是增加派生列。派生列是由表中的其它多个列的计算所得,增加派生列可以减少统计运算,在数据汇总时可以大大缩短运算时间。
因此,在数据库的设计中,数据应当按两种类别进行组织:频繁访问的数据和频繁修改的数据。对于频繁访问但是不频繁修改的数据,内部设计应当物理不规范化。对于频繁修改但并不频繁访问的数据,内部设计应当物理规范化。有时还需将规范化的表作为逻辑数据库设计的基础,然后再根据整个应用系统的需要,物理地非规范化数据。规范与反规范都是建立在实际的操作基础之上的约束,脱离了实际两者都没有意义。只有把两者合理地结合在一起,才能相互补充,发挥各自的优点。
2、索引和聚簇
创建索引是提高检索效率最有效的方法之一,索引把表中的逻辑值映射到安全的RowID,能快速定位数据的物理地址,可以大大加快数据库的查询速度,一个建有合理索引的数据库应用系统可能比一个没有建立索引的数据库应用系统效率高几十倍,但并不是索引越多越好,在那些经常需要修改的数据列上建立索引,将导致索引B*树的不断重组,造成系统性能的下降和存储空间的浪费。
Oracle提供了另一种方法来提高查询速度,就是聚簇(Cluster)。所谓聚簇,简单地说就是把几个表放在一起,按一定公共属性混合存放。聚簇根据共同码值将多个表的数据存储在同一个Oracle块中,这时检索一组Oracle块就同时得到两个表的数据,这样就可以减少需要存储的 Oracle块,从而提高应用程序的性能。
二、物理结构的优化对于物理存储结构优化,主要是合理地分配逻辑结构的物理存储地址,这样虽不能减少对物理存储的读写次数,但却可以使这些读写尽量并行,减少磁盘读写竞争,从而提高效率,也可以通过对物理存储进行精密的计算减少不必要的物理存储结构扩充,从而提高系统利用率。
分享到:
相关推荐
《Oracle数据库设计优化指导》 Oracle数据库设计优化是提升系统性能和数据管理效率的关键环节。此指导旨在为CRM产品的数据库设计提供一套规范,以确保数据库设计的质量,进而提高软件产品的整体质量。该规范主要...
《ORACLE数据库设计与优化》 Oracle数据库是全球广泛使用的大型关系型数据库系统之一,它在数据存储、处理和管理方面具有强大的功能。本主题主要探讨Oracle数据库的设计原则和优化策略,以提升系统的性能和效率。 ...
PostgreSQL MySQL Oracle 数据库设计优化完美攻略 本文将从数据库设计阶段的角度出发,讨论数据库设计优化的重要性和注意事项。数据库设计是整个软件生命周期中非常重要的一部分,它直接影响着系统的性能和可靠性。...
Oracle数据库设计是构建高效、稳定、可扩展的数据库系统的基础,尤其对于初学者来说,理解这一过程至关重要。本文档将深入探讨Oracle数据库的设计原理和实践技巧,帮助新手逐步掌握数据库设计的基本概念和方法。 ...
**规范化**是数据库设计的基础,通过消除冗余和依赖关系,实现数据结构的优化。常见的规范化级别包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF),每个级别都对应着不同的数据组织方式,目标是达到数据的...
综上所述,盖国强的《Oracle数据库性能优化》涵盖了从SQL优化、索引管理、架构设计到内存管理、资源调度、性能监控等多个方面,是一本全面了解和实践Oracle数据库性能优化的宝贵资源。通过深入学习和实践书中的内容...
Oracle 数据库索引优化方法探析 Oracle 数据库索引优化方法探析是指通过对 Oracle 数据库索引的分析和优化,以提高数据库的查询效率和性能。 Oracle 数据库索引是一种数据结构,用于快速访问数据库表的特定信息。...
综上所述,Oracle数据库查询优化涉及多个层面,包括SQL编写、索引设计、执行计划分析、绑定变量使用、物理设计优化、统计信息维护和资源管理工具的应用。掌握这些方法并灵活运用,可以显著提升Oracle数据库的运行...
"Oracle数据库性能优化与运维最佳实践"的主题涵盖了如何确保Oracle数据库高效、稳定运行的关键技术和策略。 首先,性能优化涉及多个层面,包括SQL查询优化、存储结构优化、索引设计以及数据库参数调整。SQL查询优化...
《Oracle数据库性能优化实践指南》是一本专注于提升Oracle数据库运行效率的专业资料,旨在帮助数据库管理员和IT专业人士解决在日常工作中遇到的各种性能问题。通过深入理解Oracle数据库的工作原理和调优技术,读者...
Oracle作为业界领先的数据库管理系统,其性能优化策略涵盖多个层面,包括系统配置、数据库设计、SQL语句优化、内存管理、I/O调优以及操作系统参数调整。 首先,优化策略在信息系统开发初期就需要考虑。这包括对...
《Oracle数据库性能优化实践指南》是一本专注于Oracle数据库性能调优的专业书籍,旨在帮助读者深入理解和掌握如何在实际环境中提升Oracle数据库的运行效率。Oracle数据库是全球广泛使用的大型企业级数据库管理系统,...
SQL性能优化是数据库...总结来说,Oracle数据库的SQL性能优化是一个综合性的过程,涉及需求分析、规范化设计、查询优化技术和持续的数据库维护。通过全面考虑这些因素,可以构建出高效、稳定且易于管理的数据库系统。
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其性能优化是一项关键任务,直接影响到系统的响应速度、资源利用率和整体稳定性。本合集包含了11个文档,全面涵盖了Oracle数据库性能优化的各种方面,旨在...
项目还包含了毕业论文和PPT,这表明项目不仅涉及实际的代码编写,还包括了系统设计、需求分析、数据库设计、性能优化等方面的理论研究。毕业论文可能详细阐述了系统的架构、功能模块、数据流和处理流程,而PPT可能...
【Oracle数据库大作业】是一个关于Oracle数据库在教务管理系统中的应用项目,可能涵盖了数据库设计、实施、优化等多个方面的内容。这个大作业包含了PPT演示文稿、Word文档以及可能的源代码,为学习者提供了全面了解...
Oracle数据库的优化是数据库管理员和开发人员关注的重要领域,它涉及到提高系统性能、减少资源消耗以及确保数据访问的高效性。以下是对Oracle数据库优化的详细分析: 一、SQL优化 SQL查询是数据库交互的核心,优化...
1. **数据库设计优化** - **表空间和数据文件规划**:合理分配表空间,根据业务需求预估存储大小,避免频繁扩展。 - **索引设计**:根据查询模式选择合适的索引类型(B树、位图、函数索引等),避免过度索引和索引...