oracle的性能优化概述

oracle的性能优化概述

ID:32628494

大小:94.77 KB

页数:6页

时间:2019-02-13

oracle的性能优化概述_第1页
oracle的性能优化概述_第2页
oracle的性能优化概述_第3页
oracle的性能优化概述_第4页
oracle的性能优化概述_第5页
资源描述:

《oracle的性能优化概述》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Oracle的性能优化概述一个数据库系统的生命周期叮以分成设计、开发和成品三个阶段。在设计阶段进行数据库性能优化的成木最低,收益最大。在成品阶段进行数据库性能优化的成木最高,收益最小。数据库的优化可以通过对网络、硬件、操作系统、数据库参数和应用程序的优化来进行。故常见的优化手段就是对硬件的升级。据统计,对网络、硬件、操作系统、数据库参数进行优化所获得的性能捉升,全部加起來只占数据库系统性能提升的4•竝右,其余的S係统性能提升來口对应用程序的优化。许多优化专家认为,对应用程序的优化可以得到■•弟勺系统性能的捉升。一、数据库性能的优化数据库设计是应用程序设计的基础,其性能宵•接影响应用程序的

2、性能。数据库性能包括存储空间需求量的大小和查询响应时间的氏短两个方面。为了优化数据库性能,需要对数据库中的表进行规范化。规范化的范式可分为第一范式、第二范式、第三范式、gT范式、第四范式和第五范式。一般来说,逻辑数据库设计会满足规范化的前)级标准-但由于满足第三范式的表结构容易维护且基本满足实际应用的要求。因此,实际应用中一般都按照第三范式的标准进行规范化。但是,规范化也有缺点:由于将一个表拆分成为多个表,在査询时需要多表连接,降低了查询速度。由于规范化冇可能导致查询速度慢的缺点,考虑到一些应用需要较快的响应速度,在设计表时应同时考虑对某些表进行反规范化。反规范化可以采用以下儿种方法:L

3、分割表分割表包括水平分割和垂直分割。水平分割是按照行将一个表分割为多个表,这可以提高每个表的查询速度,但查询、更新时要选择不同的表,统计时要汇总多个表,因此应用程序会更复杂。乖貢分割是对于一个列很多的表,若某些列的访问频率远远离于菇它列,就可以将主键和这些列作为一个表,将主键和其它列作为另外一个表。通过减少列的宽度,増加了每个数据页的行数,一次R•就可以扫描更多的行,从而提高了访问每一个表的速度。但是由于造成了多表连接,所以应该在同时查询或更新不同分割表中的列的诸况比较少的诸况下使用。九保留冗余列当两个或多个表在查询中经常需耍连接时,可以在其中一个表上增加若干冗余的列,以避免表之间的连接

4、过于频繁。宙于对兀余列的更新操作必须对多个表同步进行,所以一般在兀余列的数据不经常变动的情况下使用。X增加派生列派生列是由表中的其它多个列计算所得,增加派生列可以减少统计运算,在数据汇总时可以大大缩短运算时间。二、应用程序性能的优化应用程序的优化通常可分为两个方面:源代码和卑语句。由于涉及到对程序逻辑的改变,源代码的优化在时间成木和风险上代价很高,而对数据库系统性能的提升收效冇限,因此应用程序的优化应着重在瑯语句的优化。对于海量数据,劣质睥语句和优质睥语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就行,而是耍写出高质量的瑯语句,提高系统的可用性。下面就某些珂L语

5、句的乂〈■子句编写中需要注意的问题作详细介绍。在这些•子句中,即使某些列存在索引,但是由于编写了劣质的瑯.系统在运行该瑯语句时也不能使用该索引,而同样使用全表扫描,这就造成了响应速度的极大降低。lbmL与s^rrnx不能用・・11作索引,任何包含・・0值的列都将不会被包含在索引中。即使索引有多列的情况下,只要这些列中有一列含有・・爼该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。任何在y■子句中使用七叽过或七・•<•■过的语句优化器是不允许使用索引的。x联接列对于有联接的列,即使最后的联接值为一个静态值,优化器不会使用索引的。例如,假定有一个职工表(•■1

6、场*),对于一个职工的姓和幺分成两列存放(ra$iy『■和5吃丁・),现在要查询一个叫乔治皿■布什(Cf♦■s")的职工。下而是一个釆用联接査询的瑯语句:*ihmm

7、•[厂■上面这条语句完全可以查询出是否冇这个员工,但是这里需要注意,系统优化器对基于—•创建的索引没有使用。当采用下面这种$駁语句的编写,—<1•系统就可以采用基于j.p•创建的索引:•«]切•■!■■啣■・》>•-Cm"I■遇到下面这种情况又如何处理呢?如果一个变最中存放着If-这个员工的姓名,对于这种情况我们又如何避免全程遍历使用索引呢?可以使用一个函数,将变量・・•小的姓和名分开就可以了,但是有一点需要注意,这个函数是

8、不能作用在索引列上。下面是瑯查询脚本:*mm・]1»严叭-SVSTkC/">"1>“I■»1•■»iXSIkO44>I带通配符(询的语句同样以上面的例子来看这种情况。目前的需求是这样的,要求在职工表中查询名字中包含的人。可以采用如下的查询瑯语句:这里由于通配符(G在搜寻词首出现,所以•系统不使用•的索引。在很多借况下可能无法避免这种情况,但是一定耍心中冇底,通配符如此使用会降低查询速度。然而当通配符出现在字符串其他位置时,优化器就能

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。