影响Oracle性能会有很多方面的原因

影响Oracle性能会有很多方面的原因,总体来说可以分为四个方面:
1.硬件的环境

cpu,内存,网络传输条件等均会影响到oracle的性能。

硬件方面的例子,不用举例大家也会有所了解,这里不再详细说明。

2.数据库运行时的配置参数也会影响到Oracle的性能

下面以一个示例项目中涉及问题为例,说明一下配置参数的影响.

当前我们的项目供某公司的一个部门使用,正常运行一段时间后就会出现运行特别慢的现象(当前的服务器有两块cpu),通过对linux中cup和内存的运行情况,我们发现是由于一块cpu在运行一段时间时,会出现100%被占用的情况,而另一块cpu却利用率很低,通过对两块cpu的负载均衡,程序运行速度恢复正常。

3.对于不合理的表结构设计也会影响到Oracle的性能

对于不合理的表结构对性能的影响,我们在另一个项目中也有发生,当前有一张表,存储了用户手机号码,在统计时需要对用户的手机号码进行分类统计,而另一张表中存储了与手机号码前四或前七位匹配的地区名称,这时间程序员写了一条sql语句为: select * from userPhone,Userarea where (left(userPhone.phone,4) == userarea.id or left(userPhone,7)==userarea.id);该语句在前期userPhone表数据量不多时,没有感觉到性能方面的影响,但当userPhone达到1万条时,性能迅速降低,经过分析后, 确定是由于表结构不太合理,于是在userPhone中增加一个userarea的id列,sql语句修改为 select * from userPhone,Userarea where userPhone.areaid ==userarea.id),程序运行性能恢复正常.

4.对于程序员而言,写出不合理的sql语句也会影响Oracle的性能

(1)如果程序员创建一个数据库更新事务之类,而没有进行commit及进的提交,将会造成系统锁死的状态,这样会严重影响系统的性能。

(2)在第3条中,程序员写出的类似于select * from userPhone,Userarea where (left(userPhone.phone,4) == userarea.id or left(userPhone,7)==userarea.id);的语句主要还是由于对sql运行的机制不了解,没有分析该条语句将要处理的数据记录的数量,从而没有发现表结构的不合理,由此造成性能的严重下降。

参考:: http://www.haoxiai.net/shujuku/Oracle/110862.html

时间: 2024-09-23 12:29:36

影响Oracle性能会有很多方面的原因的相关文章

看看葫芦里的药 ORACLE性能调优原则

oracle|性能 任何事情都有它的源头,要解决问题,也得从源头开始,影响ORACLE性能的源头非常多,主要包括如下方面: 数据库的硬件配置:CPU.内存.网络条件 1. CPU:在任何机器中CPU的数据处理能力往往是衡量计算机性能的一个标志,并且ORACLE是一个提供并行能力的数据库系统,在CPU方面的要求就更高了,如果运行队列数目超过了CPU处理的数目,性能就会下降,我们要解决的问题就是要适当增加CPU的数量了,当然我们还可以将需要许多资源的进程KILL掉: 2. 内存:衡量机器性能的另外一

不要让临时表空间影响Oracle数据库性能

在Oracle数据库中进行排序.分组汇总.索引等到作时,会产生很多的临时数据.如有一张员工信息表,数据库中是安装记录建立的时间来保存的.如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据.对于这些临时数据,Oracle数据库是如何处理的呢? 通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内.在这个程序全局区中有一个叫做排序区的地方,专门用来存放这些因为排序操作而产生的临时数据.但是这个分区的容量是有限的.当这个

哪些初始化参数最影响Oracle系统性能

oracle|性能 哪些初始化参数最影响Oracle系统性能什么是SGA(系统全局区) 1.系统全局区(SGA)是一个分配给Oracle 的包含一个 Oracle 实例的数据库的控制信息内存段. 主要包括数据库高速缓存(the database buffer cache), 重演日志缓存(the redo log buffer), 共享池(the shared pool), 数据字典缓存(the data dictionary cache)以及其它各方面的信息.db_block_buffers

《Oracle数据库性能优化方法论和最佳实践》——第1章 Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化

第1章Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化 Oracle数据库性能优化一直是一个让人既胆怯又兴奋的话题,在初级DBA眼里,这是一个神秘的领域,即使是资深的Oracle DBA,也可能无法描述清楚性能优化究竟要做什么,应达成什么目标.那么性能优化究竟是做什么的呢?简而言之,性能优化就是让我们的工作速度变快,快到让我们满意为止.自然,又有读者会问了,我们的工作是什么呢?什么程度才算快,是否可以衡量?看,头疼的问题又来了.1.1.1 从一个真实病例说起 下面是本人的真实经历,也许很

Oracle 性能相关的几个 视图 和 参数

原文转自:http://blog.csdn.net/tianlesoftware/article/details/5867276 一.性能视图          性能视图是Oracle中一些记录数据库性能方面的视图,通过查看这些视图,获得数据库当前或历史上某个时间的性能数据. 它比SQL_TRACE,AWR报告获取数据更及时,便捷. 1.1 V$SQL          V$SQL 视图是一个DBA 使用频率非常高的动态视图,它通常和V$SESSION 一起使用来获得当前会话的一些SQL执行情况

《Oracle数据库性能优化方法论和最佳实践》——1.7 Oracle性能优化的神话和误区

1.7 Oracle性能优化的神话和误区 Oracle性能优化工作是Oracle数据库科学最为神秘莫测的领域,自然也就会流传着各种传言和八卦.本书最主要的目的就是真正使Oracle性能优化成为一门严谨的科学,使任何阅读并且理解本书内容的读者可以比较简单地完成Oracle性能优化工作,使自己在其他人面前成为"巫师"或"神秘的对象".1.7.1 艺术和科学 从百度.Google等网站搜索"性能优化艺术",会出现大量的条目,部分Oracle性能优化的图

《Oracle数据库性能优化方法论和最佳实践》——1.4 Oracle性能优化工作的分类

1.4 Oracle性能优化工作的分类 在Oracle上进行性能优化时,不同场景下的优化工作方法和内容有很大的不同.下面从实践角度来展开优化工作的分类.1.4.1 上线优化或从未达到过性能期望的系统优化如果业务系统未进行充分的性能测试就上线,那么有相当一部分会出现性能问题,不会出现性能问题的系统往往建立在有强大硬件的基础之上.这类缺乏性能设计考虑的业务系统部分或全部具有以下特点.开发人员(业务系统)假设资源是无限的,可以任意使用,忘记了任何系统都是在一个资源受限的系统中运行业务.开发人员(业务系

Oracle性能调整的三把利剑--ASH,AWR,ADDM

Oracle性能调整的三把利剑--ASH,AWR,ADDM ASH (Active Session History)ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件.不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成.ASH buffers 的最小值为1MB,最大值不超过30MB.内存中记录数据.期望值是记录一小时的内容. 生成ASH报告:SQLPLUS>@?/rdbms/ashrpt.sql ASH内存记录数据始终是有限的,为了保存历史数据,引入了自动负载信息

【中亦安图】导致Oracle性能抖动的参数提醒(4)

第一章 技术人生系列 · 我和数据中心的故事(第四期)-导致Oracle性能抖动的参数提醒 中亦安图 | 2016-01-25 21:39 前言 不知不觉,技术人生系列·我和数据中心的故事来到了第四期.小y又和大家见面了! 当您看到业务系统压测呈现以下波浪形的tps曲线时,你会怎么下手? 小y(中亦科技)今天要和大家分享的就是这样一个业务系统压测性能问题的分析和解决过程.这个问题困扰了客户相当长一段时间,幸运的是,小y通过远程在10分钟定位到了问题的原因并帮助客户最终解决了问题.需要说明的是,在