Oracle体系结构知识点的运用
体系结构方面的优化问题:
- 设数据库很大,访问量非常高,共享池很小:这样共享池里面就无法存储很多解析过得sql语句,导致很多硬解析,这样数据库就非常缓慢。这个时候要加大共享池。如果是自动管理,就加大SGA的大小。
- 设:某平时不经常访问的数据库的主机才4G内存,去开辟了3G的SGA,500m的PGA,由于OS操作系统内存不足,导致主机运行缓慢,我们要减少SGA大小。
- 如果由于数据缓存区过小而产生的大量物理读,则要增大SGA。
- 如果排序使用了临时表空间,就说明PGA过小,如果系统有额外的大量内存,可以考虑多分配一部分给PGA(一般是OLAP系统)
- 如果数据库有大量的更新操作,产生大量的日志导致日志切换频繁,在日志切换过程中,数据库会停滞运行,为了提高性能,需要加大日志文件的大小。
- 如果某个应用因为老是查出ORA-01555错误而无法把值给下一个模块使用,导致生产出现故障。需要检查为什么这个sql执行这么慢。优化的方法:加索引,清理历史数据,让表的记录小一点,或者增大undo_retention的值(这个值只是建议值,非强制),也可以增大undo表空间。
具体的sql优化:
- 构造环境 + 未优化(单车速度:40+秒
sqlplus
drop table t purge;
create table t (x int);
alter system flush shared_pool;
set timing oncreate 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;
- 绑定变量,摩托速度: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%';
- 静态改写,汽车速度:6+秒
create or replace procedure proc3
as
begin
for i in 1..100000
loop
insert into t values( i );
commit;
end loop;
end;
/ - 批量提交,动车速度:2秒
create or replace procedure proc4
as
begin
for i in 1..100000
loop
insert into t values( i );
end loop;
commit;
end;
/ - 集合写法,飞机速度:.14秒
insert into t select rownum from dual connect by level <=100000;
- 直接路径,火箭速度:.89秒,在10万的时候是.23所以需要量才能看得出来快了。
create table t as select rownum x from dual connect by level <= 1000000;
- 并行设置,飞船速度:需要有多cpu:本机实测1.05秒比6性能差,一般在机器空闲而且性能强大时用。
create table t nologging parallel 4 as select rownum x from dual connect by level <=1000000;
##resetpool.sql:
drop table t purge;
create table t(x int);
alter system flush shared_pool;
set pagesize 1000
col sql_text format a30
Oracle体系结构知识点的运用的更多相关文章
- 【体系结构】有关Oracle SCN知识点的整理
[体系结构]有关Oracle SCN知识点的整理 1 BLOG文档结构图 BLOG_Oracle_lhr_Oracle SCN的一点研究.pdf 2 前言部分 2.1 导读和注意事项 各位技 ...
- Oracle体系结构总结
1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 可参考Oracle Architecture系列随堂笔记: ...
- oracle 体系结构
oracle 体系结构 数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. 1. oracle工作原理: 1).在数据库服务器上启动Oracle实例:2).应用程序 ...
- Oracle实例和Oracle数据库(Oracle体系结构)
--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...
- 【转载】Oracle实例和Oracle数据库(Oracle体系结构)
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:Leshami 原文地址:http://blog.csdn.net/ ...
- oracle 体系结构解析
三.oracle 体系结构 1.oracle内存由SGA+PGA所构成 2.oracle数据库体系结构数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. oracl ...
- Oracle 课程一之Oracle体系结构
课程目标 •理解ORACLE数据库体系架构—内存结构和进程 •理解SQL在数据库中的运作流程 •理解UNDO&REDO原理 •理解commit原理 1.Oracle数据库概述 •数据库:物 ...
- oracle体系结构
oracle体系结构有四个部分组成分别为:oracle 服务器.用户进程.服务器进程.其他关键文件.其中oracle服务器又有实例(instance)和database组成是一个数据库管理系统. 一. ...
- Oracle体系结构之进程
Oracle体系结构之进程 一.概述 Oracle中的每个进程都要执行一个特定的任务(或者一组任务),每个进程都会为自己分配内存(PGA)来完成它的任务.一个Oracle实例主要有以下3类进程: (1 ...
随机推荐
- Oracle基础 (系统工具(export,import)) exp/imp和 (数据泵 (data pump))expdp/impdp的区别:
一.exp/imp和expdp/impdp在功能上的区别: 1.把用户usera的对象导入到userb emp/imp用法: formuser=usera touser=userb; empdp/im ...
- 程序编码(机器级代码+汇编代码+C代码+反汇编)
[-1]相关声明 本文总结于csapp: 了解详情,或有兴趣,建议看原版书籍: [0]程序编码 GCC调用了一系列程序,将源代码转化成可执行代码的流程如下: (1)C预处理器扩展源代码,插入所有用#i ...
- mysql开启general log的方法
因为为了性能考虑,一般general log不会开启.slow log可以定位一些有性能问题的sql,而general log会记录所有的SQL. mysql5.0版本,如果要开启slow log.g ...
- Convert.ToInt32( null or "")
由于总忘记,先写一下. Console.WriteLine("输出转换空结果 ={0}", Convert.ToInt32("")); //Convert.To ...
- CSS盒模型简单用法
1.盒模型 margin:外边距: margin-top /margin-right/margin-bottom/margin-left; 或者 margin:top right bottomleft ...
- android APP是否需要缓存?+简单架构
问题的由来 昨天,当我写完我的第一篇博客之后,我便百无聊赖的玩起了手机!当我打开Google自带的一些app的时候,发现他们直接叫我连接网络,并没有缓存上次从网络获取的数据.这就让我感到很奇怪!于是我 ...
- [老老实实学WCF] 第三篇 在IIS中寄存服务
老老实实学WCF 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我 ...
- MVC 上传图片的解决方案
为了避免冲突,分两步来引用nuget第一步为项目安装nuget: Install-Package Backload Install-Package jQuery.FileUpload 分别引用,安装后 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- C++开发
5.1 介绍 针对C++的VxWorks配置 C++头文件 使用C++启动任务 C和C++之前调用代码 C++编译器说明 在信号处理和ISR中使用C++ 下载C++编写的内核模块 C++编译器的不同 ...
- PowerDesigner数据库建模工具一缆
转自:http://blog.csdn.net/shanliwa/archive/2007/10/20/1834117.aspx Sybase PowerDesigner - 一个高端数据建模工具.你 ...