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

  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. html + js 右 点击 弹出 菜单

    页面 引用jar 包 <link rel="stylesheet" href="../../style/zui.min.css" type="t ...

  2. Javascript -- toFixed()函数

    Javascript——toFiexed()函数 1. toFixed(n) 限制小数点后位数,四舍五入.n:0~20 . 2. 作用对象必须是number,不能为其他类型.如(8.001).toFi ...

  3. DNA电荷转移:电阻的计算公式 & Marcus电子转移理论

    更新:26 APR 2016 参考文献: [1] Mechanisms for DNA Charge Transport. Chem. Rev. 2010, 110, 3, 1642-1662 [电子 ...

  4. SQL Server高级内容之子查询和表链接

    1.子查询概念 (1)就是在查询的where子句中的判断依据是另一个查询的结果,如此就构成了一个外部的查询和一个内部的查询,这个内部的查询就是自查询. (2)自查询的分类 1)独立子查询 ->独 ...

  5. SQL中各数据类型的长度、精度

    在 Microsoft? SQL Server? 中,每个列.局部变量.表达式和参数都有一个相关的数据类型,这是指定对象可持有的数据类型(整型.字符.money 等等)的特性. SQL Server ...

  6. c# js调用AjaxPro方法出错解析

    公司的项目的框架中有一部分用到了AjaxPro这个方法,看到这个方法的我一脸懵逼,老老实实去百度了一下. AjaxPro是.NET平台下的一个回调式AJAX框架,使用简单,功能强大.顾名思义ajax, ...

  7. GForms展现服务云开发平台

    GForms完全基于开放标准,使用XForms作为面向服务的架构简单易用的前端,帮助用户跨多个行业加速数据整合.GForms提供可视化设计器,实现展现服务开发中数据与模型完全分离,加快开发速度快速投入 ...

  8. HDU1022 Train Problem I 栈的模拟

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 栈的模拟,题目大意是已知元素次序, 判断出栈次序是否合理. 需要考虑到各种情况, 分类处理. 常 ...

  9. 同一个tomcat多个web应用共享session

    tomcat版本:apache-tomcat-6.0.29(次方tomcat6和tomcat7支持)   1.修改D:\apache-tomcat-6.0.29\conf\server.xml文件   ...

  10. java大数--总结

    BigInteger(高精度整数) 1.所在包: java.math.BigInteger 2.大数运算,以下返回类型均为BigInteger BigInteger a; BigInteger b; ...