体系结构方面的优化问题:

  1. 设数据库很大,访问量非常高,共享池很小:这样共享池里面就无法存储很多解析过得sql语句,导致很多硬解析,这样数据库就非常缓慢。这个时候要加大共享池。如果是自动管理,就加大SGA的大小。
  2. 设:某平时不经常访问的数据库的主机才4G内存,去开辟了3G的SGA,500m的PGA,由于OS操作系统内存不足,导致主机运行缓慢,我们要减少SGA大小。
  3. 如果由于数据缓存区过小而产生的大量物理读,则要增大SGA。
  4. 如果排序使用了临时表空间,就说明PGA过小,如果系统有额外的大量内存,可以考虑多分配一部分给PGA(一般是OLAP系统)
  5. 如果数据库有大量的更新操作,产生大量的日志导致日志切换频繁,在日志切换过程中,数据库会停滞运行,为了提高性能,需要加大日志文件的大小。
  6. 如果某个应用因为老是查出ORA-01555错误而无法把值给下一个模块使用,导致生产出现故障。需要检查为什么这个sql执行这么慢。优化的方法:加索引,清理历史数据,让表的记录小一点,或者增大undo_retention的值(这个值只是建议值,非强制),也可以增大undo表空间。

具体的sql优化:

  1. 构造环境 + 未优化(单车速度:40+秒
    sqlplus
    drop table t purge;
    create table t (x int);
    alter system flush shared_pool;
    set timing on
    create or replace procedure proc1
    as
    begin
    for i in 1..100000
    loop
    execute immediate
    ‘insert into t values(‘||i||’)’;
    commit;
    end loop;
    end;
    /
    exec proc1;
    col sql_text format a30
    set pagesize 1000
    select t.sql_text,t.sql_id,t.parse_calls,t.executions from v$sql t where sql_text like '%insert into t values%' and rownum<100;

  2. ##resetpool.sql:
    drop table t purge;
    create table t(x int);
    alter system flush shared_pool;
    set pagesize 1000
    col sql_text format a30

  3. 绑定变量,摩托速度:8+秒
    create or replace procedure proc2
    as
    begin
    for i in 1..100000
    loop
    execute immediate
    'insert into t values( :x )' using i;
    commit;
    end loop;
    end;
    /

    select t.sql_text,t.sql_id,t.parse_calls,t.executions from v$sql t where sql_text like '%insert into t values%';

  4. 静态改写,汽车速度:6+秒
    create or replace procedure proc3
    as
    begin
    for i in 1..100000
    loop
    insert into t values( i );
    commit;
    end loop;
    end;
    /

  5. 批量提交,动车速度:2秒
    create or replace procedure proc4
    as
    begin
    for i in 1..100000
    loop
    insert into t values( i );
    end loop;
    commit;
    end;
    /

  6. 集合写法,飞机速度:.14秒
    insert into t select rownum from dual connect by level <=100000;

  7. 直接路径,火箭速度:.89秒,在10万的时候是.23所以需要量才能看得出来快了。
    create table t as select rownum x from dual connect by level <= 1000000;

  8. 并行设置,飞船速度:需要有多cpu:本机实测1.05秒比6性能差,一般在机器空闲而且性能强大时用。
    create table t nologging parallel 4 as select rownum x from dual connect by level <=1000000;

Oracle体系结构知识点的运用的更多相关文章

  1. 【体系结构】有关Oracle SCN知识点的整理

    [体系结构]有关Oracle SCN知识点的整理 1  BLOG文档结构图   BLOG_Oracle_lhr_Oracle SCN的一点研究.pdf 2  前言部分 2.1  导读和注意事项 各位技 ...

  2. Oracle体系结构总结

    1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 可参考Oracle Architecture系列随堂笔记: ...

  3. oracle 体系结构

    oracle 体系结构 数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. 1. oracle工作原理: 1).在数据库服务器上启动Oracle实例:2).应用程序 ...

  4. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

  5. 【转载】Oracle实例和Oracle数据库(Oracle体系结构)

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:Leshami      原文地址:http://blog.csdn.net/ ...

  6. oracle 体系结构解析

    三.oracle 体系结构 1.oracle内存由SGA+PGA所构成 2.oracle数据库体系结构数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. oracl ...

  7. Oracle 课程一之Oracle体系结构

    课程目标 •理解ORACLE数据库体系架构—内存结构和进程 •理解SQL在数据库中的运作流程 •理解UNDO&REDO原理 •理解commit原理   1.Oracle数据库概述 •数据库:物 ...

  8. oracle体系结构

    oracle体系结构有四个部分组成分别为:oracle 服务器.用户进程.服务器进程.其他关键文件.其中oracle服务器又有实例(instance)和database组成是一个数据库管理系统. 一. ...

  9. Oracle体系结构之进程

    Oracle体系结构之进程 一.概述 Oracle中的每个进程都要执行一个特定的任务(或者一组任务),每个进程都会为自己分配内存(PGA)来完成它的任务.一个Oracle实例主要有以下3类进程: (1 ...

随机推荐

  1. 典型的字符串处理代码(page50)

    Page50: public class TypicalString{//典型的字符串处理代码 public static boolean isPlalindrom(String s){//判断字符串 ...

  2. POJ 1502 MPI Maelstrom (最短路)

    MPI Maelstrom Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6044   Accepted: 3761 Des ...

  3. android sqlite操作(1)

    以下只是我个人的浅见,大神请忽略~ android提供了一个轻量级的数据库sqlite,虽然说是轻量级,但是相对移动设备sqlite绝对够用了. 先说一下sqlite的管理工具吧 sqlite3,使用 ...

  4. php 图片调整大小 封装类【转载】

    <?php class ImageResize { private $image; private $img_des; private $image_type; private $permiss ...

  5. 2015影响因子Excel版

    现在终于有影响因子2015的Excel版了,这个版本除了还包括杂志全称和缩写等基本信息还,包括中科院分区, 应该是迄今2015影响因子最奢华的版本了吧. 看了这个版本,发现中国的SCI杂志还是不少的, ...

  6. 利用 NUget包 EPPlus 实现数据导出到Excel(适用于MVC)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvoAAABpCAIAAADEEBBGAAAJdElEQVR4nO3cy2ob5wLA8TxKnqTrrr

  7. 解决IE6下固定定位问题 使用position:fixed

    IE6浏览器有太多的bug让制作网页的人头疼.这篇文章介绍的是介绍的是如何解决IE6不支持position:fixed;属性的办法. 如果我们需要做某个元素始终位于浏览器的底部,不会因为浏览器窗口的缩 ...

  8. Extjs Cmd 学习笔记

    1.sencha app build 命令 <!-- <x-compile> -->                  <!-- <x-bootstrap> ...

  9. java随笔 乱腾腾的 一些东西

    调用requonse.getWriter()方法时可实现文本字符串数据输出,调用response.getOutputStream()方法可现实字节流数据的输出.两种输出方式threadlocal模式和 ...

  10. maven 练习

    新建项目: Next next next 新建项目后,MyEclipse会自动从远程仓库中下载支持包,需要几分钟左右时间. 项目结构图: HelloWorld.java public class He ...