关系型数据库性能优化总结
对于web应用开发,多数性能瓶颈均出现在数据库上,除了采用分布式架构或云处理(大公司基本上都是),更重要的是平时程序设计时要遵照一些规则,从根本上提高系统的性能,以下总结了一些常用的规则方法,仅供参考
1、 把数据、日志、索引放到不同的I/O设备上,增加读取速度。数据量(尺寸)越大,提高I/O越重要。
如果只有两块硬盘,那么一定要把tempdb单独放在一个硬盘上面,再多一块是log文件,再多硬盘的话就可以考虑partition了。
2、 纵向、横向分割表,减少表的尺寸,如:可以把大数据量的字段拆分表。
3、 根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(建立聚集索引的字段了,如果是连续的值,那使用默认值0,但是如果不是的话,建议根据实际情况设定合适的fillfactor,这样会减少页分拆,提高性能)。索引应该尽量小,尽量使用字节数小的列建索引,不要对有限的几个值的列建单一索引。
4、 用OR的字句可以分解成多个查询,并且通过UNION链接多个查询。它们的速度只与是否使用索引有关,如果查询需要用到联合索引,用UNION all执行的效率更高。
5、 在查询SELECT语句中用WHERE子句限制返回的行数,避免表扫描。如果返回不必要的数据,则浪费了服务器的I/O资源,加重了网络的负担,降低了性能。如果表很大,在表扫描期间将表锁住,禁止其他的联结访问表,后果很严重。
6、 注意使用DISTINCT,在没有必要时不要用,它同UNION一样会使查询变慢。
7、 在IN后面值的列表中,将出现最频繁的值放在最前面,出现最少的放在最后面,减少判断的次数。
8、 一般在GROUP BY和HAVING子句之前就能剔除多余的行,所以尽量不要用它们来做剔除行的工作,也就是说尽可能在WHERE中过滤数据。
9、 尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。存储过程是编译、优化过,并且被组织到一个执行规划里,且存储在数据库中的SQL语句(存储过程是数据库服务器端的一段程序),是控制流语言的集合,速度当然快。
10、不要在一句话里再三地使用相同的函数,浪费资源,将结果放在变量里再调用更快。
11、 针对大量只读查询操作进行优化的方法:
1) 数据量小的数据,可以考虑不存储在数据库中,而是通过程序常量的方式解决。
2) 需要存储在数据库中的数据,可以考虑采用物化视图(索引视图)。当DBA在视图上创建索引时,这个视图就被物化(执行)了,并且结果集被永久地保存在唯一索引中,保存方式与一个有聚簇索引的表的保存方式相同。物化视图减除了为引用视图的查询动态建立结果集的开销,优化人员可以在查询中使用视图索引,而不需要在FROM子句中直接指定视图。
3) 数据存储时可以考虑适当的数据冗余,以减少数据库表之间的链接操作,提高查询效率。
4) 针对数据的特点,采取特定的索引类型。例如,位图索引等。
12、 对于SQL语句书写时的一些建议:
1) 写语句时能够确定数据库对象所有者的,尽可能把所有者带上,如:
2) 存储过程中,参数定义最好放在最前面,尽可能一次定义,如:
DECLARE @USER_ID INT
,@USER_NAME VARCHAR(50)
,@PASSWORD VARCHAR(50)
|
3) 为参数赋值时,尽可能一次赋值,如:
SELECT @USER_ID = 1001
,@USER_NAME = 'xiaojun.liu'
|
4) 尽量少用游标
13、最好不要使用“*",如果非聚集索引建立的合适的话,在叶子节点就可以直接找到所需的数据,不需要再查找聚集索引或者是定位到heap上面了,能少一次bookmark
lookup就少一次,一次两次看不出来什么区别,多了以后还是很有用的。
为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略。优化策略一般包括服务器操作系统参数调整、数据库参数调整、网络性能调整、应用程序SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信息系统开发。
来源:http://www.cnblogs.com/liuxiaojun/archive/2010/12/09/database_performance_optimization.html
分享到:
相关推荐
Oracle 数据库性能优化是关系型数据库管理系统中的一项关键技术。随着数据量的不断增加和应用系统的复杂性增加,数据库性能的优化变得越来越重要。本文将讨论 Oracle 数据库语句性能优化的方法,从系统设计阶段的...
Oracle数据库是全球广泛应用的关系型数据库之一,其性能直接影响到整个系统的运行效率。本文将浅析Oracle数据库的性能优化,主要关注数据库服务器性能和数据库配置两个关键领域。 首先,数据库服务器性能是决定整体...
### 大型关系型数据库优化探讨 #### 一、前言 Oracle数据库作为一种广泛应用的大型关系型数据库管理系统,在众多行业中扮演着至关重要的角色。然而,在实际应用过程中,由于多种因素的影响,Oracle数据库往往无法...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其性能优化是DBA(数据库管理员)和系统管理员关注的重要领域。盖国强先生的《Oracle数据库性能优化》一书深入浅出地探讨了这个主题,旨在帮助读者理解...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其性能优化是一项关键任务,直接影响到系统的响应速度、资源利用率和整体稳定性。本合集包含了11个文档,全面涵盖了Oracle数据库性能优化的各种方面,旨在...
本文将深入探讨关系型数据库的工作原理及其优化策略,主要关注Oracle和MySql这两种主流数据库。 首先,我们要理解关系型数据库的基础——SQL(结构化查询语言)。SQL是用于操作关系数据库的标准语言,包括数据查询...
Oracle作为广泛应用的大型关系型数据库,其性能直接影响到系统的整体效率。优化策略主要围绕减少磁盘访问,以获取所需数据,并通过对比优化前后的响应时间、吞吐量、可用性、命中率和内存利用率等指标来评估和指导...
Oracle数据库是关系型数据库管理系统(RDBMS),其内部由多个层次构成,包括实例(Instance)、数据库(Database)、表空间(Tablespace)、数据文件(Datafile)、段(Segment)、区(Extent)以及数据块(Data ...
Oracle数据库作为一款广泛应用于管理信息系统、企业数据处理、互联网和电子商务领域的关系型数据库管理系统,其性能优化对于确保系统的稳定性和高效运行至关重要。随着数据量的快速增长,数据库性能优化成为数据库...
Oracle 11g数据库是Oracle公司推出的一款企业级关系型数据库管理系统,被广泛应用于各种规模的企业和组织中,尤其在大型数据存储、管理和分析方面表现出卓越的能力。中南大学的这个课程显然旨在帮助初学者理解和掌握...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,它在处理复杂的数据操作和高并发事务处理方面表现出色。然而,随着数据量的增长和业务需求的增加,数据库性能优化成为了一个至关重要的任务。"Oracle...
Oracle9i 是 Oracle 公司推出的一款功能强大的关系型数据库管理系统(RDBMS)。随着业务规模的增长和技术的发展,Oracle9i 的性能优化成为了提高系统响应速度、提升用户体验的关键环节。性能优化主要包括对数据库...
Oracle数据库是全球广泛使用的大型关系型数据库系统之一,它在数据存储、处理和管理方面具有强大的功能。本主题主要探讨Oracle数据库的设计原则和优化策略,以提升系统的性能和效率。 一、数据库设计基础 1. 规范化...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其性能优化对于企业级应用至关重要。这篇摘要将探讨三篇关于Oracle数据库性能优化的论文,包括“Oracle 10G 数据库性能优化的研究”、“Oracle 10g数据库...
Oracle数据库是一个复杂且功能强大的关系型数据库管理系统(RDBMS),其核心组件包括实例和数据库文件。理解Oracle的体系结构对于优化性能至关重要。 - **实例**: 包括后台进程和内存结构,如共享池(Shared Pool)、...
《Oracle数据库性能优化实践指南》是一本专注于Oracle数据库性能调优的专业书籍,旨在帮助读者深入理解和掌握如何在实际环境中提升Oracle数据库的运行效率。Oracle数据库是全球广泛使用的大型企业级数据库管理系统,...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其性能优化是DBA(数据库管理员)和系统管理员的重要工作内容。本教程"Oracle数据库性能优化"旨在帮助用户掌握提高Oracle数据库效率的关键技术和策略。 ...
Oracle数据库作为一款功能强大的关系型数据库管理系统,其性能优化对于保障航空结算系统的稳定运行至关重要。 1. Oracle数据库概述 Oracle数据库,起源于1970年代的关系型数据库技术,它通过理解数据间的关联,...
Oracle数据库作为业界广泛使用的大型关系型数据库管理系统,其性能优化对于企业的业务运行至关重要。这本书从硬件、软件以及实际应用的多个角度出发,系统地介绍了数据库性能优化的策略和技巧。 首先,硬件层面的...
ORACLE 数据库服务器性能优化技术 ORACLE 数据库服务器性能优化技术是指通过合理分配计算机资源、调整系统运行参数来提高 ORACLE 数据库服务器性能的过程。该技术包括调整 CPU 参数、服务器内存分配、硬盘 I/O、...