oracle数据库运行慢,优化配置,Oracle数据库运行越来越慢,应该怎么优化一下?

怎么对Oracle数据库进行优化,提升运行速度? oracle数据库运行慢,优化配置,Oracle数据库运行越来越慢,应该怎么优化一下?

我根据所维护的Oracle 项目经验来回答这个问题,希望能够帮助到题主及有需要的朋友。

Oracle 运行越来越慢,是有多种原因,我从由易到难的思路,介绍一下我们实际运用的方法分享给大家:

一、Oracle 数据库层自身的优化

1. 表的优化。表是Oracle中存放数据的最终载体,表的优化是核心。 随时业务系统使用时间越长,表中的数据就越多,表的优化会起到立竿见影的效果。

(1) 表的高水位问题。

表中的数据,因较多的 delete 操作,会产生高水位,此时当发生全表读的操作,将会额外消耗资源,从而造成业务人员直接感觉到系统使用慢。

补救的办法是:回收高水位。

(2) 表的统计信息过旧或者不准确

   统计信息不准确,会引起执行计划出错,造成业务系统越来越慢。 表的统计信息就相当于人的基本情况,当基本情况都不准确时,如何能够保证正确的执行呢。

补救的办法是:收集表的统计信息。

(3) 未实施表分区技术

化整为零的思想。 某些表,根据业务的实际需要,未做表分区。 比如会经常用按年月来查询表中某月的数据,如果表中的数据量非常大,比如超100万条,就可以按月进行分区,让按月的查询,只需要读取所需要月份的分区表。

补救的办法是: 对表实行化整为零,转为分区表

2. 索引的优化

(1) 差索引

数据库运行慢,很多的情况是查询语句中引用的列,差索引。索引是提升速度非常重要的手段。

补救的办法是: 分析SQL 语句,对缺失的索引进行创建。

(2) 索引的统计信息不准

索引的统计信息与表的信息信息思想是一样的, 只有统计信息准确,SQL 才能够最大程度的选择最好的执行计划,以最短的时间执行完所需要的业务SQL。

补救的办法是:收集索引的统计信息。

3. SQL 语句的优化

数据库慢,很多情况是因为SQL写法不对,造成执行时间长,消耗了过多的资源。 因此优化SQL 是非常重要的方式之一。

补救的办法是:收集Oracle 数据库的 AWR, ADDM, ASH 等性能报告,找出执行时间长、消耗资源多的SQL 语句进行优化。

4. Oracle 数据库的参数优化

数据库想要运行速度快,对Oracle的运行参数进行优化是重要的手段和方法,比如大家所熟悉的 SGA、PGA、DB_Cache_Size 、Process 等参数进行分析、优化。

二、 操作系统不建议用 WIndows

Oracle 数据库的运行也是要挑系统平台的,一般的中、小企业,推荐的是使用 Linux ,从每次Oracle新版本的发行就知道,首先推出的是Linux平台,然后是 Unix平台,最后才是Windows平台。

三、 升级 Oracle 数据库硬件

如经过前面 2 个大项的优化,仍然不能提升Oracle 数据库的运行速度,则可能是因为现有的硬件不能满足当前的业务需求,必须采取升级 Oracle 数据库服务器的硬件资源比如:升级CPU、内存、磁盘(特别是提升 磁盘 I/O 速度),来提升Oracle数据库的运行速度。

以上方法和思路,是我们实际项目中遇到并运用的方法和手段,欢迎大家交流。

oracle数据库运行慢,优化配置,Oracle数据库运行越来越慢,应该怎么优化一下?

oracle DBA需要掌握哪些技巧?

要想成为一名优秀的DBA,除了数据库本身的技术能力要熟练之外,还要掌握一些其他的技术,比如操作系统、网络、虚拟化、存储...因为IT的多个领域之间都是有关系的,密不可分!

数据库技术:你要了解以下几方面内容

第一:sql语句及plsql语句

第二:体系架构(数据库的安装、卸载及升级;数据库的启动及关闭;监听器及tns的概念;文件、内存、进程的概念,及它们之间是如何协调工作的;表空间、段、区段、数据块的概念及关系;scn及检查点;表及高水位线;锁;用户及权限;审计等)

oracle数据库运行慢,优化配置,Oracle数据库运行越来越慢,应该怎么优化一下?

第三:备份恢复(冷备份、热备份及RMAN备份)

第四:性能优化(执行计划、跟踪、10046事件、hang分析、索引、分区、sql优化、awr报表等性能分析工具、等待事件等)

第五:高可用性(dataguard、rac、goldengate)

希望我的回答对你有帮助!

为什么传统行业几乎都用Oracle,而互联网行业几乎都不用Oracle呢?

银行等传统行业很多都是直接买的Oracle,还有weblogic等等这一类,付费不开源的软件。而新兴互联网行业几乎都是用MySQL tomcat springboot这些。对于开源软件不可控的问题,互联网公司同样也要面临,对于使用spring tomcat MySQL这些似乎也没出过什么问题。难道是传统行业人傻钱多,就是懒得招人来搭框架直接买个现成的能用就行?但是招个普通程序猿来装MySQL,似乎才是性价比更高的方案啊?Oracle weblogic就算有技术上领先的地方,觉得传统行业那些人多半也不懂。求解求解。

首先银行要求绝对稳定性,使用付费不开源产品可以完全责任委托,而且数据库厂商还会有专门维护,省心,省力,安全。

mysql呢,开源产品,稳定性没有o高,如果要深度开发倒是很省事,不过使用mysql就完全要看自己了,银行不会为了一个随时都有可能出现意外的定时炸弹找专门团队维护,而且银行交易量很大,但并非像互联网应用一样超级并发,大部分都是内部接口使用,而且分地区都是不同的服务器,每个地区只存储自己相关的数据,比如你从广东给山东异地转账,原始山东账户里并不存你的记录,转了之后山东数据库才有记录,在依赖oracle商业委托的基础下,银行还会有对账,来保证数据一致性。

但是反观互联网企业就不一样了,超级并发,小型机已经不满足这种并发条件了,哪怕oracle足够优秀,所以要使用应对更高并发特制的mysql,需要有专业的团队进行维护,稳定性不如oracle,不过分布式集群可以避免这种情况。而且mysql因为开源还可以针对自己的需求特制功能。不过大部分企业用不上[捂脸],小公司用啥都一样。阿里重新开发mysql除了自己用外还可以卖服务。

再说一句,阿里其实弃o选m其实除了并发问题,还因为oracle太贵,因为企业要考虑收支,就算阿里利润率也比不上银行[灵光一闪]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论