Oracle性能优化

Posted 点滴幸运

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle性能优化相关的知识,希望对你有一定的参考价值。

一、oracle数据库优化类型

1、从未达到性能要求的数据库优化。

            压力测试或者业务刚刚上线时,通过修改应用框架或者大规模的优化SQL语句进行改进,耗时最长,难度也最大。

2、量变引起质变的数据库优化

             进入生产环境,随着业务的并发量、数据量的增加出现,通过增加硬件性能或存储,优化难度一般,但代价比较高。

3、突发性数据库性能故障优化

              需要数据库管理员快速定位问题,提出解决方案。 优化难度最低,但时间最急迫。

 

二、优化目标

1、增大数据库吞吐量。如通过数据库优化增加每秒执行的事务数。

2、高效利用服务器硬件资源。如开启并行充分利用CPU和存储I/O资源加快执行速度。

 

三、优化方法

1、减少I/O读取次数、避免I/O争用

2、锁表问题,导致某一个业务奔溃

     原因:当某一个用户正在操作一条数据时,若忘记提交,另外一个用户又要对其进行修改时。由于上个操作未提交,导致下一个修改操作一直处于等待状态,当时间长了,就会导致锁表情况的发生。

     解决方法:可以通过 kill语句杀死第一个未提交的会话,或者主动对第一个窗口的修改语句进行提交,即可解除锁表情况。

3、表空间不足,即数据文件达到最大值

-----先查询对应的表空间的最大空间,和可用空间,查找出哪个表空间查找不足的情况

 SELECT UPPER(F.TABLESPACE_NAME) "表空间名",

       D.TOT_GROOTTE_MB "表空间大小(M)",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                     2),
               \'990.99\') || \'%\' "使用比(%)",
       F.TOTAL_BYTES "空闲空间(M)",
       F.MAX_BYTES "最大块(M)"
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
               ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
          FROM SYS.DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
          FROM SYS.DBA_DATA_FILES DD
         GROUP BY DD.TABLESPACE_NAME) D
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
 ORDER BY F.TABLESPACE_NAME

 

----根据表空间的使用情况,查询表空间对应的具体数据文件的使用情况

 select t.TABLESPACE_NAME, --表空间名

       t.FILE_NAME, --文件名
       t.AUTOEXTENSIBLE, --是否自动扩展
       t.BYTES / 1024 / 1024, --表空间初始大小
       t.MAXBYTES / 1024 / 1024, --表空间最大扩展到多少
       b.CONTENTS, --表空间类型
       b.EXTENT_MANAGEMENT --表空间管理模式
  from dba_data_files t, dba_tablespaces b
 where t.TABLESPACE_NAME = b.TABLESPACE_NAME
---解决方法
1、对数据文件USERS01.DBF进行扩充

alter database datafile \'D:\\APP\\WEIHUA\\ORADATA\\ORCL\\STUDENT1.DBF\' resize 100M ;

 2、直接再增加一个数据文件USERS02.DBF,初始化大小为100M,自动扩展,最大值为500M的数据文件

alter tablespace STUDENT1

add datafile \'D:\\APP\\WEIHUA\\ORADATA\\ORCL\\STUDENT1.DBF\'
size 100m
autoextend on next 10m maxsize 500m
 
四、操作系统资源对Oracle性能的重要性
1、CPU资源:合理并最大限度地利用系统资源是数据库优化的目标之一
2、内存:内存分配没有多少之分,够用就行
3、I/O资源:

以上是关于Oracle性能优化的主要内容,如果未能解决你的问题,请参考以下文章

Oracle性能优化之性能调整_超越OCP精通Oracle视频教程培训38

Oracle性能优化之性能诊断工具_超越OCP精通Oracle视频教程培训33

Oracle Proc编程性能优化经验

Oracle性能优化之性能跟踪工具_超越OCP精通Oracle视频教程培训34

Oracle性能优化之操作系统工具_超越OCP精通Oracle视频教程培训37

Oracle性能优化之执行计划管理_超越OCP精通Oracle视频教程培训31