基于大型Oracle数据库应用开发已有6个年头了,经历了从最初零数据演变到目前上亿级的数据存储。在这个经历中,遇到各种各样的性能问题及各种性能优化。

在这里主要给大家分享一下数据库性能优化的一些方法和见解。

1、服务器要求及配置

服务器处理器性能很关键,CPU的主频要高,要有较大的内存,IO读写速度块。

如何验证一台服务器的IO读写效率如何了,可以通过IOPS这个指标来衡量。普及一下IOPS的定义:IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。目前SSD硬盘的IOPS基本是万级别。但相对的成本也是比较高的。

在Oracle数据使用场景中,可以实现如下语句来查看当前服务器的IOPS:

 declare
       max_iops_out pls_integer ;
       max_mbps_out pls_integer ;
       actual_latency_out pls_integer ;
    begin
       dbms_resource_manager.calibrate_io(
          max_iops=>max_iops_out,
          max_mbps=>max_mbps_out,
          actual_latency=>actual_latency_out);

dbms_output.put_line('max_iops = ' || max_iops_out
                          || ',max_mbps = ' || max_mbps_out
                          || ',actual_latency = ' || actual_latency_out);
   end

2、Oracle系统级的优化

这里主要是针对ORACLE核心的优化,包括Oracle内存设置、文件大小、日志文件大小、回滚日志及各种系统级参数的设定。

那么如何发现目前的设置是否合理了,

A、在Oracle中提供一个性能分析报告AWR和ASH报告.可以通过命令来获取该份报告。里面涉及到各种指标值:内存设定是否合理、影响ORACLE慢的几大因素,数据文件读写速度等。

B、也可以通过ORALCE-EM中的性能模块,来检测每个时间节点ORALCE的运行情况,从中捕获那些耗资源的SQL语句,从而进行优化。

 3、Oracle SQL语句的优化

     数据库在百万级别,遇到的任何性能问题时,均可以通过SQL语句的优化。优化的层面有2种:

1、通过索引,这种优化的速度最快,而且见效也很明显。索引的合理使用我就不在这里叙述,网上很多。

2、通过更改SQL语句的查询逻辑和算法。有一个比较很效的原则是:先过滤小的结果集,然后通过这个小的结果集和其他表做关联。

在这里希望大家可以提提一些其他观点或不同看法。

浅谈Oracle 性能优化的更多相关文章

  1. 开发高性能的MongoDB应用—浅谈MongoDB性能优化(转)

    出处:http://www.cnblogs.com/mokafamily/p/4102829.html 性能与用户量 “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题.性能往往 ...

  2. 开发高性能的MongoDB应用—浅谈MongoDB性能优化

    关联文章索引: 大数据时代的数据存储,非关系型数据库MongoDB 性能与用户量 “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题.性能往往决定了一个软件的质量,如果你开发的是 ...

  3. 浅谈前端性能优化(二)——对HTTP传输进行压缩

    1.前端性能优化的一点: 对js.css.图片等进行压缩,尽可能减小文件的大小,减少文件下载的时间,从而减少网页响应的时间. 2.前端性能优化的另一点: 对HTTP传输进行压缩,即在js,css.图片 ...

  4. 浅谈前端性能优化(PC版)

    前端的性能优化是一个很宽泛的概念,最终目的都是为了提升用户体验,改善页面性能.面试的时候经常会遇到问谈谈性能优化的手段,这个我分几大部分来概述,具体细节需要自己再针对性的去搜索,只是提供一个索引(太多 ...

  5. AJPFX浅谈Java性能优化之finalize 函数

    ★finalize 函数的调用机制 俺经常啰嗦:“了解本质机制的重要性”.所以今天也得先谈谈 finalize 函数的调用机制.在聊之前,先声明一下:Java虚拟机规范,并没有硬性规定垃圾回收该不该搞 ...

  6. 浅谈vue性能优化

    基础优化 所谓的基础优化是任何 web 项目都要做的,并且是问题的根源.HTML,CSS,JS 是第一步要优化的点 分别对应到 .vue 文件内的,<template>,<style ...

  7. AJPFX浅谈Java 性能优化之字符串过滤实战

    ★一个简单的需求 首先描述一下需求:给定一个 String 对象,过滤掉除了数字(字符'0'到'9')以外的其它字符.要求时间开销尽可能小.过滤函数的原型如下: String filter(Strin ...

  8. AJPFX浅谈Java 性能优化之垃圾回收(GC)

    ★JVM 的内存空间 在 Java 虚拟机规范中,提及了如下几种类型的内存空间: ◇栈内存(Stack):每个线程私有的.◇堆内存(Heap):所有线程公用的.◇方法区(Method Area):有点 ...

  9. 【转载】我眼中的Oracle性能优化

    我眼中的Oracle性能优化 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角 ...

随机推荐

  1. Android应用开发学习之相对布局

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 相对布局RelativeLayout是指按照组件之间的相对位置进行布局,如一个组件在另一个组件的左边.右边.上边或下 ...

  2. 模拟学信网登录,Cookie 序列化,在反序列化之后不能用的问题

    昨天和今天在模拟学信网登录,然后抓取用户的信息数据的时候发现一直登录不成功, 登录页面,https://account.chsi.com.cn/passport/login?service=http% ...

  3. python的locals()妙用

    如果你是个喜欢偷懒的程序员并想让代码看起来更加简明,可以利用 Python 的内建函数 locals() .它返回的字典对所有局部变量的名称与值进行映射.因此,前面的视图可以重写成下面这个样子:def ...

  4. 详解Oracle创建用户权限全过程

    本文将介绍的是通过创建一张表,进而实现Oracle创建用户权限的过程.以下这些代码主要也就是为实现Oracle创建用户权限而编写,希望能对大家有所帮助. 注意:每条语语分开执行,结尾必须用分号; // ...

  5. CentOS 6.3(x86_64)下安装Oracle 10g R2

    目 录 一.硬件要求二.软件三.系统安装注意四.安装Oracle前的系统准备工作五.安装Oracle,并进行相关设置六.升级Oracle到patchset 10.2.0.4七.使用rlwrap调用sq ...

  6. Win7 不能安装 msi 解决办法

    Win7 不能安装Setup.msi解决办法 解决方案如下: 新建一个文本文件,输入msiexec /i d:\Setup.msi (假设文件名为Setup.msi ,放在d盘根目录下,即是安装程序的 ...

  7. 方法javaJVM学习笔记-内存处理

    本文是一篇关于方法java的帖子 大多数JVM将内存区域分离为Method Area(Non-Heap),Heap,Program Counter Register,Java Method Statc ...

  8. 很值得学习的java 画图板源码

    很值得学习的java 画图板源码下载地址:http://download.csdn.net/source/2371150 package minidrawpad; import java.awt.*; ...

  9. Java网页数据采集器[中篇-数据存储]【转载】

    本期概述 上期我们学习了html页面的数据采集,为了方便我们今后来调用收集到的数据,首先我们需要学习下如何将这些采集到的数据存储起来(MySql数据库). 数据采集页面 2011-2012赛季英超球队 ...

  10. delphi 添加节点

      //在选中的节点中上添加1个节点 procedure TForm1.Button1Click(Sender: TObject); begin     with TreeView1 do     b ...