Oracle性能优化

Carlos 2020-05-31

一、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

Oracle性能优化

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

 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
Oracle性能优化
---解决方法
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

相关推荐