Oracle 性能调整内存篇PPT课件
合集下载
Oracle_性能优化.ppt
0001
0001 0001 0001 0002 0002 0003 0004
BBB
CCC
0001
0003 0001 0002
EEE
DDD AAA FFF
300
400 600 550
数据块
0120 0340 0900 0190
NNN OOO SDF DSS
120 330 220 580
DDD
DDD EEE
•
OVERFLOW子句(行溢出)
因为所有数据都放入索引,所以当表的数据量很大时,会降低索引组织表的查 询性能。此时设置溢出段将主键和溢出数据分开来存储以提高效率。溢出段 的设置有两种格式: PCTTHRESHOLD n :制定一个数据块的百分比,当行数据占用大小超出时 ,该行的其他列数据放入溢出段 INCLUDING column_name :指定列之前的列都放入索引块,之后的列都放 到溢出段 ● 当行中某字段的数据量无法确定时使用PCTTHRESHOLD。 ● 若所有行均超出PCTTHRESHOLD规定大小,则考虑使用INCLUDING。
使用哈希聚簇指南 • 当经常使用有相同列的包含相等条件的查询子句访问表时,考虑使用哈希聚 簇来存储表。使用这些列作为聚簇键。 • 如果可以确定存放具有给定聚簇键值的所有记录所需的空间(包括现在的和 将来的),则将此表以哈希聚簇存储。 • 如果空间不够,并且不能为将要插入的新记录分配额外的空间,那么不要使 用哈希聚簇。 • 如果偶尔创建一个新的、很大的哈希聚簇来保存这样的表是不切实际的,那 么不要用哈希聚簇存储经常增长的表。 • 如果经常需要进行全表搜索,并且必须要为表的预期增长中的哈希聚簇分配 足够的空间,则不要将此表以哈希聚簇存储。(这样的完全检索必须要读分 配给哈希聚簇的全部块,即使有些块可能只包含很少的记录。单独地存储表 将减少由完全的表检索读取的块的数量。) • 如果你的应用程序经常修改聚簇键的值,则不要将表以哈希聚簇方式存储。 • 不管这个表是否经常与其他表连接,只要进行哈希对于基于以前的指南的表 是合适的,那么在哈希聚簇中存储一个表可能是有用的。
Oracle性能优化PPT课件
STATSPACK统计信息的表空间以及临时表空间
-
7
AWR报告
• Oracle 10g 版本 推出的新特性 • Automatic Workload Repository • 负责收集、处理并维护性能统计信息 • 检查和分析性能问题 • 对比StackPack报告:实时+自动
-
8
AWR报告
• 生成标准统计报表
举例三:优化后
select b.insuredname, b.insuredidno from llclaimpedor a, lccont b where a.contno = b.contno
and a.caseno = '9055000006018488'
-
31
举例四:优化前
SELECT r.* FROM LOPRTManager r, LCCont t WHERE r.StateFlag in ('1') and (patchflag is null or patchflag <> '1') AND r.PrtType = '0' and t.ContNo = r.OtherNo
• Bitmap 位图索引
– 多应用于数据仓库 – 统计类需求适用 – Update代价较高
-
13
索引创建原则
• 提高查询语句的效率,减慢了DML语句的速度 • 在全表扫描和索引之间权衡
– 如果全表扫描可以接受,那么慢一些的索引访问也可以接受
• 在哪些列建立索引
– Where字句中引用的列 – Join中引用的列 – 在子表的FK上建立索引,防止对父表操作时锁住子表
-
29
-
7
AWR报告
• Oracle 10g 版本 推出的新特性 • Automatic Workload Repository • 负责收集、处理并维护性能统计信息 • 检查和分析性能问题 • 对比StackPack报告:实时+自动
-
8
AWR报告
• 生成标准统计报表
举例三:优化后
select b.insuredname, b.insuredidno from llclaimpedor a, lccont b where a.contno = b.contno
and a.caseno = '9055000006018488'
-
31
举例四:优化前
SELECT r.* FROM LOPRTManager r, LCCont t WHERE r.StateFlag in ('1') and (patchflag is null or patchflag <> '1') AND r.PrtType = '0' and t.ContNo = r.OtherNo
• Bitmap 位图索引
– 多应用于数据仓库 – 统计类需求适用 – Update代价较高
-
13
索引创建原则
• 提高查询语句的效率,减慢了DML语句的速度 • 在全表扫描和索引之间权衡
– 如果全表扫描可以接受,那么慢一些的索引访问也可以接受
• 在哪些列建立索引
– Where字句中引用的列 – Join中引用的列 – 在子表的FK上建立索引,防止对父表操作时锁住子表
-
29
oracle性能优化149页PPT
合理运用技术的重要性
二.性能优化分析基本工具的使用
工欲善其事,必先利其器
SQL量化分析和优化工具:
EXPLAIN
SQL*TRACE TKPROF
4种基本的诊断分析工具
AUTO*TRACE
AWR
ADDM
SQL*PROFILING
SQL ACCESS ADVISOR
SQL TUNING ADVISOR
ASH
SQL语句到底是怎么执行的
最经典的执行计划分析工具---EXPLAIN 可以快速的了解语句的执行过程。 目前几乎所有的开发工具(PLSQL developer、toad
等)都有图形化界面,可以直接的分析语句的执行 计划。但如银行类的客户不允许使用工具。
如何配套使用SQL*TRACE和 TKPROF
一. Oracle数据库性能优化方法论
WHY WHO WHAT HOW WHEN
--Why tunes? --Who tunes? --What to tune? --How to tune? --When to tune?
为什么(why)要优化
--系统慢了? --其实慢只是表象 --距离找到慢的原因可能路还很长…
索引未被使用的原因
1.不要轻易的在字段前加函数 2.尽量不要将字段嵌入表达式中 3.避免字符转换 4.索引列的选择性不高 5.索引列值是否可为空(NULL) 6.检查被索引的列或组合索引的首列是否出现在
PL/SQL语句的WHERE子句中 7.优化器的选择
复合索引
1. 前缀性(Prefixing) 复合索引的前缀性是指只有当复合索引的第一个字 段出现在SQL语句的谓词条件中时,该索引才会被用 到。 2. 可选性(Selectivity) Oracle建议复合索引应按字段可选性(即值的多少) 的高低进行排列,这是因为,字段值越多,可选性 越强,定位的记录就越少,查询效率就越高。
2024年度Oracle的性能优化培训课件
监听器和网络配置
合理配置监听器参数和网络参 数,以优化客户端与数据库服 务器之间的通信性能和稳定性
。
18
05
CATALOGUE
Oracle SQL语句优化
2024/2/2
19
SQL语句编写规范
使用标准的SQL语法
遵循Oracle SQL的编写规范, 确保语句的准确性和可读性。
避免使用SELECT *
规范化与反规范化设计
01
通过数据库表的规范化,消除数据冗余;在必要时,通过反规
范化提高查询性能。
分区表设计
02
根据业务需求,将大表拆分为多个小表,提高查询和维护性能
。
视图与物化视图
03
利用视图简化复杂查询,物化视图缓存查询结果,提高查询速
度。
12
物理结构优化策略
2024/2/2
存储参数调整
根据数据访问特点,调整数据块大小、表空间管理方式等存储参 数。
2024/2/2
3
性能优化目标与意义
2024/2/2
目标
提高系统响应速度、吞吐量,降 低资源消耗,确保系统稳定、高 效运行。
意义
对于企业级应用,性能优化能够 显著提升用户体验,降低运营成 本,增强系统可扩展性和可维护 性。
4
性能优化常见场景
索引优化
合理创建、调整索引,提高数 据检索效率。
内存优化
调整内存参数配置,提高系统 缓存命中率,减少磁盘I/O。
SQL查询优化
针对慢查询、低效查询进行优 化,提高查询速度。
2024/2/2
存储优化
优化数据存储结构、表空间管 理,提高I/O性能。
并发与锁优化
优化事务处理、锁机制,提高 系统并发处理能力。
合理配置监听器参数和网络参 数,以优化客户端与数据库服 务器之间的通信性能和稳定性
。
18
05
CATALOGUE
Oracle SQL语句优化
2024/2/2
19
SQL语句编写规范
使用标准的SQL语法
遵循Oracle SQL的编写规范, 确保语句的准确性和可读性。
避免使用SELECT *
规范化与反规范化设计
01
通过数据库表的规范化,消除数据冗余;在必要时,通过反规
范化提高查询性能。
分区表设计
02
根据业务需求,将大表拆分为多个小表,提高查询和维护性能
。
视图与物化视图
03
利用视图简化复杂查询,物化视图缓存查询结果,提高查询速
度。
12
物理结构优化策略
2024/2/2
存储参数调整
根据数据访问特点,调整数据块大小、表空间管理方式等存储参 数。
2024/2/2
3
性能优化目标与意义
2024/2/2
目标
提高系统响应速度、吞吐量,降 低资源消耗,确保系统稳定、高 效运行。
意义
对于企业级应用,性能优化能够 显著提升用户体验,降低运营成 本,增强系统可扩展性和可维护 性。
4
性能优化常见场景
索引优化
合理创建、调整索引,提高数 据检索效率。
内存优化
调整内存参数配置,提高系统 缓存命中率,减少磁盘I/O。
SQL查询优化
针对慢查询、低效查询进行优 化,提高查询速度。
2024/2/2
存储优化
优化数据存储结构、表空间管 理,提高I/O性能。
并发与锁优化
优化事务处理、锁机制,提高 系统并发处理能力。
ORACLE性能优化之SQL调整精品PPT课件
3
Oracle构架-总体结构
• 实例(Instance) 包括内存域和后台进程,数据库启动时,首先启动实例,系统自动分配系统
全局区,并启动Oracle的多个后台进程。 • 系统全局区(System Glogal Area,SGA)
是一组为系统分配的共享的内存结构,可包含一个数据库实例的数据或控制 信息。 • 数据块缓存区(Data Buffer Cache)
数据字典有访问表的至少一行的统计数据,则优化器使用的基于代价 和最佳吞吐量方法。如果访问表没有统计数据,则优化使用基于规则 的路径。默认为基于规则的路径 • All_rows 对整个SQL语句,优化器使用基于代价的路径。使用最小 资源返回整个行。 • FIRST_ROWS 对整个SQL语句,优化器使用基于代价的路径。使用 最小资源返回第一行。 • FIRST_ROWS_N(N是1、10、100或者1000)优化器使用基于代价 的路径。以最有效的方法检索行。 • RULE 对整个SQL语句,优化器使用基于规则的路径。
• 程序全局区(Program Global Area,PGA) 服务器进程使用的内存区域,包括特定服务器进程的数据和控制信息,例如 使用的操作系统资源等 。
Oracle构架-总体结构
• 数据写入进程(Database Writer,DBWR) 将缓冲区内的数据写入数据文件,是负责数据缓冲区管理的一个后台进程
Oracle优化器-CBO
• 1、条件 需要收集统计分析数据,包括记录数、块数、空值数、
值的唯一数、不同值的分布情况等; • 2、相关指标
Selective :结果集占全表的比例; Histograms:不同列值记录数的分布; Cardinality:结果记录数; Cost:执行成本; • 维护CBO的有效性 用ANALYZE 语句; 使用DBMS_STATS 包;
Oracle性能调整与优化71页PPT
Oracle数据库性能 调整和优化
Oracle技术专题讲座
SUPPORT SERVICES
内容提要
1.oracle 性能调整概述 2.磁盘I/O的调整 3.oracle 内存分配与调整 4.SQL优化概述 5.Statspack概述
SUPPORT SERVICES
1.oracle 性能调整概述
SUPPORT SERVICES
2.5 管理回滚段
回滚段:用来保存数据变化前映像而提供一致读和保障 事务完整性的一段磁盘存储区域. 旧数据
回滚段
新数
表
据
UPDATE
SUPPORT SERVICES
2.5 管理回滚段
回滚段作用
回退事务
事务恢复
回滚段
读一致性
控制文件
数据文件
重做日志
SUPPORT SERVICES
SUPPORT SERVICES
2.4 使用本地管理表空间(LMT)自动段空间管理 (ASSM)
create tablespace demo datafile '/ora01/oem/demo01.dbf ' size 5m EXTENT MANAGEMENT LOCAL -- Turn on LMT SEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM;
OWNER ALEX
TABLE_NAME DEPT
PARTITION_COUNT 3
SUPPORT SERVICES
2.4 使用分区表避免磁盘争用
Select segment_name, partition_name, segment_type, tablespace_name
Oracle技术专题讲座
SUPPORT SERVICES
内容提要
1.oracle 性能调整概述 2.磁盘I/O的调整 3.oracle 内存分配与调整 4.SQL优化概述 5.Statspack概述
SUPPORT SERVICES
1.oracle 性能调整概述
SUPPORT SERVICES
2.5 管理回滚段
回滚段:用来保存数据变化前映像而提供一致读和保障 事务完整性的一段磁盘存储区域. 旧数据
回滚段
新数
表
据
UPDATE
SUPPORT SERVICES
2.5 管理回滚段
回滚段作用
回退事务
事务恢复
回滚段
读一致性
控制文件
数据文件
重做日志
SUPPORT SERVICES
SUPPORT SERVICES
2.4 使用本地管理表空间(LMT)自动段空间管理 (ASSM)
create tablespace demo datafile '/ora01/oem/demo01.dbf ' size 5m EXTENT MANAGEMENT LOCAL -- Turn on LMT SEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM;
OWNER ALEX
TABLE_NAME DEPT
PARTITION_COUNT 3
SUPPORT SERVICES
2.4 使用分区表避免磁盘争用
Select segment_name, partition_name, segment_type, tablespace_name
oracle学习11g性能调优官方PPTless_12
12 - 19
12 - 5
Copyright © 2008, Oracle. All rights reserved.
Statistic Gathering Options
12 - 6
Copyright © 2008, Oracle. All rights reserved.
Setting Statistic Preferences
12 - 3
Copyright © 2008, Oracle. All rights reserved.
Maintaining Optimizer Statistics
• Optimizer statistics change over time • Changes in statistics influence the optimizer • To maintain optimum executioor: Overview
Comprehensive SQL tuning • Detect stale or missing statistics • Tune the SQL plan (SQL profile) • Add missing indexes • Restructure SQL statements
AWR
DBA
12 - 16
Copyright © 2008, Oracle. All rights reserved.
Using SQL Profiles
SQL profiles are: • Captured in categories • Enabled by category By default all SQL profiles are enabled for all users.
Oracle内存管理简介精品PPT课件
SI
BINARY_INTEGER
IN
SE
BINARY_INTEGER
IN
EV
BINARY_INTEGER
IN
LE
BINARY_INTEGER
IN
NM
VARCHAR2
IN
其中的参数SI、SE来自v$session视图:
select sid,serial#,username from v$session where username is not null;
ORACLE 10g FLASHBACK
ORACLE 10g FLASHBACK
Startup and Shutdown in Stages
写在最后
经常不断地学习,你就什么都知道。你知道得越多,你就越有力量
Study Constantly, And You Will Know Everything. The More You Know, The More Powerful You Will Be
database_sid.txt
Oracle 工作原理
专用服务器模式
共享服务器模式
Reviewing Oracle Instance Manag ement
Reviewing Oracle Instance Manag ement
Reviewing Oracle Instance Manag ement
当一个用户进程发出了一条SQL语句:UPDATE TABBLEA SET SALARY=SALARY*2;
Reviewing Oracle Instance Manag ement
LOG WRITER (LGWR) 日志写进程 触发条件: COMMIT LOG BUFFER 三分之一空间满时. 日志有1MB需要重做时. 每3秒 检查点发生(CKPT) BEFORE DBWn WRITES.(写数据前先写日志).
Oracle的性能优化PPT课件
看Oracle数据库的冲突情况,如果没有冲突的话,latch free查询出来没有结 果。如果冲突太大的话,数据库管理员可以降低spin_count参数值,来消除 高的CPU使用率。
第29页/共72页
4.CPU的优化调整方法 一些优化CPU使用和配置的具体方法有:
(1)取消屏幕保护。 (2)把系统配置为应用服务器。 (3)监视系统中消耗中断的硬件。 (4)保持最小的安全审计记录。 (5)在专用服务器上运行Oracle。 (6)禁止非必须的服务。
Oracle的性能 优化
第1页/共72页
第九章 Oracle的性能优 化
本章学习目标 本章将介绍优化和调整Oracle数据库 系统的一些相关命令和化概述 9.2 SQL语句的优化
9.3 Oracle运行环境的优化 9.4 并发事件处理 9.5 数据完整性 9.7 常见问题处理
第13页/共72页
语句排序优化 排序发生的情况如下: SQL中包含group by 子句 SQL 中包含order by 子句 SQL 中包含 distinct 子句 SQL 中包含 minus 或 union操作
第14页/共72页
3.选择联合查询的联合次序 联合查询中如涉及到多个表的字段关联及查询,其SQL查询语句联合次
第5页/共72页
9.1.2 不同类型系统的优化
1.在线事务处理信息系统(OLTP) 这种类型的信息系统一般需要有大量的Insert、Update操作。OLTP系统需要保
证数据库的并发性、可靠性和最终用户的速度,这类系统使用的Oracle数据库需要 主要考虑下述因素或参数: (1)数据库回滚段是否足够? (2)是否需要建立Oracle数据库索引、聚集、散列? (3)系统全局区(SGA)大小是否足够? (4)SQL语句是否高效?
第29页/共72页
4.CPU的优化调整方法 一些优化CPU使用和配置的具体方法有:
(1)取消屏幕保护。 (2)把系统配置为应用服务器。 (3)监视系统中消耗中断的硬件。 (4)保持最小的安全审计记录。 (5)在专用服务器上运行Oracle。 (6)禁止非必须的服务。
Oracle的性能 优化
第1页/共72页
第九章 Oracle的性能优 化
本章学习目标 本章将介绍优化和调整Oracle数据库 系统的一些相关命令和化概述 9.2 SQL语句的优化
9.3 Oracle运行环境的优化 9.4 并发事件处理 9.5 数据完整性 9.7 常见问题处理
第13页/共72页
语句排序优化 排序发生的情况如下: SQL中包含group by 子句 SQL 中包含order by 子句 SQL 中包含 distinct 子句 SQL 中包含 minus 或 union操作
第14页/共72页
3.选择联合查询的联合次序 联合查询中如涉及到多个表的字段关联及查询,其SQL查询语句联合次
第5页/共72页
9.1.2 不同类型系统的优化
1.在线事务处理信息系统(OLTP) 这种类型的信息系统一般需要有大量的Insert、Update操作。OLTP系统需要保
证数据库的并发性、可靠性和最终用户的速度,这类系统使用的Oracle数据库需要 主要考虑下述因素或参数: (1)数据库回滚段是否足够? (2)是否需要建立Oracle数据库索引、聚集、散列? (3)系统全局区(SGA)大小是否足够? (4)SQL语句是否高效?
Oracle数据库性能优化精解.ppt
ACOUG
李轶楠
Mail:ora-600@
13331192030
ITPUB
技术服务人生
SQL 调整:以前与现在的情况
情况:打包应用程序中的不良 SQL
以前
1. 检查系统使用情况
1.
2. 查看等待事件
2.
3. 查看数据库分散读取上的等待事件
4. 通过以下方法识别 SQL(难以操作)
3.
ACOUG
李轶楠
Mail:ora-600@
13331192030
ITPUB
技术服务人生
SQL Tuning Usage Scenarios
Automatic Selees
AWR
ADDM
Manual Selection
High-load SQL
Cursor Cache
3 表连接顺序:
ORDERED : 按照FROM中表名顺序连接 LEADING: 将选择的表作为连接驱动表.
ACOUG
李轶楠
Mail:ora-600@
13331192030
ITPUB
技术服务人生
一些典型的hints
4 连接:
USE_NL(tab) / NO_USE_NL(tab) :Use table 'tab' as the driving table in a Nested Loops join. If the driving row source is a combination of tables name one of the tables in the inner join and the NL should drive off the entire row-source. Does not work unless accompanied by an ORDERED hint.
ORACLE性能优化之二PPT课件
INSERT语句
用户可以用INSERT语句将新记录 插入到指定的一个表中。执行INSERT 语句时,系统将试着将这些值填入到相 应的列中,这时如果有主键或其它约束 条件则会进行合法性判断.如有索引则 需要重排索引.
性能要点:索引起负作用
11 05.11.2020
DELETE语句
DELETE语句用来删除已知表中的 行。如同UPDATE语句中一样,所有满 足WHERE子句中条件的行都将被删除。
ORACLE性能优
之
SQL优化
主讲: YOUNGER
1 05.11.2020
数据规模库分类(一)
数据库描述 示例库(Sample) 测试库(Experiment orTest) 微型库(Tiny) 超小型库(Very Small) 小型库(Small) 中底等库(Moderate)
数据规模 小于1M 100M到2G 小于1G 1G到5G 5G到10G 10G到50G
16 05.11.2020
高效的SQL语句(4)
SELECT子句中避免使用‘*’
– 当你想在SELECT子句中列出所有的COLUMN时,使用动态 SQL列引用 ‘*’ 是一个方便的方法。不幸的是,这是一个 非常低效的方法。实际上,Oracle在解析的过程中, 会将 ‘*’依次转换成所有的列名,这个工作是通过查询数据字 典完成的,这意味着将耗费更多的时间
算法
编 程 = 算法 + 数据结构
7 05.11.2020
SQL最基本的数据操作语句
SELECT UPDATE INSERT DELETE
8 05.11.2020
SELECT语句
SELECT语句可以从一个或多个表 中选取特定的行和列并以虚拟表的形式 返回结果集,通常还会用到表连接, ORDER BY排序与GROUP BY分组等操 作.因为查询,检索与统计数据是数据 库中最重要的功能,所以SELECT语句 在SQL中是工作量最大的部分。
ORACLE性能调整调整内存分配
规则:减少Library Cache重载
重载应该接近于0,同执行的比率小于1%
SQL> select sum(pins) "Executions", sum(reloads)
2
"Cache Misses", sum(reloads)/sum(pins)
3 from v$librarycache;
Executions Cache Misses sum(reloads)/sum(pins)
须解析到同一SCHEMA的同一对象 – 准则3:SQL语句中使用的变量的名字和数据类型必须匹配 – 准则4: SQL语句必须使用相同的优化方法和优化目标
– 策略1:语句中尽量使用变量而不要使用常量 – 策略2:确保应用用户不会改变优化方法和目标 – 策略3:标准化的变量命名和空格转换 – 策略4:尽可能使用存储过程
Library Cache的大小
– 存储对象的空间(表,索引,存储过程,视图等)
SQL> select sum(sharable_mem) 2 from V$DB_OBJECT_CACHE;
SUM(SHARABLE_MEM) -----------------
379600
– 常用SQL命令的空间
SQL> select sum(sharable_mem) 2 from V$SQLAREA where executions > 5;
做日志文件的I/O次数
诊断
• V$SESSION_WAIT--是否有等待(由于会话写数据的速
度快于LGWR) – SELECT sid,event,seconds_in_wait,state – FROM v$session_wait – WHERE event=‘log buffer space%’;
ORACLE性能调整策略全套PPT
LINKAGE
性能调整的6个目标
6、使诸如备份之类的维护任务尽可能地快
LINE
LINKAGE
性能调整的6个步骤 2、调整应用
DSS
OLTP
性能调整的6个步骤
3、调整Memory
LINKAGE
性能调整的6个步骤
3、调整I/O
LINKAGE
LINKAGE
性能调整的6个目标
4、确保读、写操作尽可能地快
LINKAGE
性能调整的6个目标
5、减少或防止资源间的竞争
2、确保经常被存取的数据块被缓存在内存中 1、确保每条SQL语句只存取最少的数据块 System architect 2、确保经常被存取的数据块被缓存在内存中 1、确保每条SQL语句只存取最少的数据块 3、确保经常被存取的SQL代码被缓存在内存中 2、确保经常被存取的数据块被缓存在内存中 5、减少或防止资源间的竞争 1、确保每条SQL语句只存取最少的数据块 1、确保每条SQL语句只存取最少的数据块 1、确保每条SQL语句只存取最少的数据块 6、使诸如备份之类的维护任务尽可能地快 1、确保每条SQL语句只存取最少的数据块 3、确保经常被存取的SQL代码被缓存在内存中 6、使诸如备份之类的维护任务尽可能地快 6、使诸如备份之类的维护任务尽可能地快
性能调整的6个步骤
5、调整资源竞争
LINKAGE
性能调整的6个步骤
6、重新调整操作系统
LINKAGE
性能调整的几种角色
System architect
应用开发者
数据库管理员 硬件软件管理员
LINKAGE
性能调整的6个目标
1、确保每条SQL语句只存取最少的数据块
LINKAGE
性能调整的6个目标
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
estd_physical_read_factor, estd_physical_reads FROM V$DB_CACHE_ADVICE WHERE name = 'DEFAULT' AND block_size =
(SELECT value FROM V$PARAMETER WHERE name = 'db_block_size') AND advice_status = 'ON';
➢ 系统全局区
数据缓冲区 共享池 日志缓冲区
➢ 程序全局区
PGA UGA
内存优化
内存最基本的优化方法
➢ 增加内存的大小
增加内存是最简单的优化方法 增加内存不是万金油 增加内存到足够大,内存对性能的增益不是线性递增的
➢ 内存增加到多大合适?
增加到性能增益曲线的拐点或者平滑点 平衡性能和资源的需求 两种方法判断内存大小:
12582912 .5 631649280 3530752 99
3
18874368 .75 631649280
0
100
2
25165824
1 631649280
Oracle 性能调整
Oracle内存优化
Server process
PGA
Shared Pool
Library Cache
Data Dictionary Cache
SGA
Database Buffer Cache
Redo Log Buffer
Stream pool
Large Pool
Java Pool
1Hale Waihona Puke 397263961.2
20
4389 5961
1 397263
104
1.3
20
4389 5961
1 397263
112
1.4
20
4389 5961
1 397263
120
1.5
20
4389 5961
1 397263
128
1.6
20
4389 5961
1 397263
……
PGA的内存调整建议
Select from
pga size pga factor bytes proc estd byte RW setd pga hit estd overalloc cnt
---------- ---------- ---------- ------------ ------------ ------------------
• 尝试不断的增大 • 使用9i的内存大小建议
数据高速缓存区的大小建议
➢ 数据缓存区的参考特性可以启用或者禁用统计信息的 收集,以预测不同缓存大小时数据库的性能.
➢ 这些统计提供的信息可以帮助DBA根据系统的负载量 定义合适的数据缓存区大小.
➢ 数据缓存区的参考通过DB_CACHE_ADVICE参数启用.
5
数据高速缓存区大小的建议值
➢ 数据缓存区的参考值被收集到 V$DB_CACHE_ADVICE视图.
➢ 这是视图包含了预测的在不同缓存大小的情况下,估 计的物理读次数.
➢ 行里也计算了物理读因子(physical read factor),这 个值来源于实际的缓存区在周期测量期间估计的读 数与实际的读数之比.
40
.5
20
4389 5961
1 397263
48
.6
20
4389 5961
1 397263
56
.7
20
4389 5961
1 397263
64
.8
20
4389 5961
1 397263
72
.9
20
4389 5961
1 397263
80
1
20
4389 5961
1 397263
88
1.1
20
4389 5961
共享池的内存调整建议
Select from
SHARED_POOL_SIZE_FOR_ESTIMATE "pool size", SHARED_POOL_SIZE_FACTOR "pool size factor", ESTD_LC_SIZE "estd lc size", ESTD_LC_MEMORY_OBJECTS "estd lc mem obj", ESTD_LC_TIME_SAVED "time saved", ESTD_LC_TIME_SAVED_FACTOR "time saved factor", ESTD_LC_MEMORY_OBJECT_HITS "mem obj hits" v$shared_pool_advice;
6
数据高速缓存区的内存调整建议
长期稳定运行状态下(db_cache_advice=ON)
column size_for_estimate format 999,999,999,999 heading 'Cache Size (m)' column buffers_for_estimate format 999,999,999 heading 'Buffers' column estd_physical_read_factor format 999.90 heading 'Estd Phys|Read Fact' column estd_physical_reads format 999,999,999 heading 'Estd Phys| Reads' SELECT size_for_estimate, buffers_for_estimate,
PGA_TARGET_FOR_ESTIMATE "pga size", PGA_TARGET_FACTOR "pga factor",BYTES_PROCESSED "bytes proc", ESTD_EXTRA_BYTES_RW "estd byte RW", ESTD_PGA_CACHE_HIT_PERCENTAGE "setd pga hit", ESTD_OVERALLOC_COUNT "estd overalloc cnt" v$pga_target_advice;
pool size pool size factor estd lc size estd lc mem obj time saved time saved factor mem obj hits
---------- ---------------- ------------ --------------- ---------- ----------------- ------------
(SELECT value FROM V$PARAMETER WHERE name = 'db_block_size') AND advice_status = 'ON';
➢ 系统全局区
数据缓冲区 共享池 日志缓冲区
➢ 程序全局区
PGA UGA
内存优化
内存最基本的优化方法
➢ 增加内存的大小
增加内存是最简单的优化方法 增加内存不是万金油 增加内存到足够大,内存对性能的增益不是线性递增的
➢ 内存增加到多大合适?
增加到性能增益曲线的拐点或者平滑点 平衡性能和资源的需求 两种方法判断内存大小:
12582912 .5 631649280 3530752 99
3
18874368 .75 631649280
0
100
2
25165824
1 631649280
Oracle 性能调整
Oracle内存优化
Server process
PGA
Shared Pool
Library Cache
Data Dictionary Cache
SGA
Database Buffer Cache
Redo Log Buffer
Stream pool
Large Pool
Java Pool
1Hale Waihona Puke 397263961.2
20
4389 5961
1 397263
104
1.3
20
4389 5961
1 397263
112
1.4
20
4389 5961
1 397263
120
1.5
20
4389 5961
1 397263
128
1.6
20
4389 5961
1 397263
……
PGA的内存调整建议
Select from
pga size pga factor bytes proc estd byte RW setd pga hit estd overalloc cnt
---------- ---------- ---------- ------------ ------------ ------------------
• 尝试不断的增大 • 使用9i的内存大小建议
数据高速缓存区的大小建议
➢ 数据缓存区的参考特性可以启用或者禁用统计信息的 收集,以预测不同缓存大小时数据库的性能.
➢ 这些统计提供的信息可以帮助DBA根据系统的负载量 定义合适的数据缓存区大小.
➢ 数据缓存区的参考通过DB_CACHE_ADVICE参数启用.
5
数据高速缓存区大小的建议值
➢ 数据缓存区的参考值被收集到 V$DB_CACHE_ADVICE视图.
➢ 这是视图包含了预测的在不同缓存大小的情况下,估 计的物理读次数.
➢ 行里也计算了物理读因子(physical read factor),这 个值来源于实际的缓存区在周期测量期间估计的读 数与实际的读数之比.
40
.5
20
4389 5961
1 397263
48
.6
20
4389 5961
1 397263
56
.7
20
4389 5961
1 397263
64
.8
20
4389 5961
1 397263
72
.9
20
4389 5961
1 397263
80
1
20
4389 5961
1 397263
88
1.1
20
4389 5961
共享池的内存调整建议
Select from
SHARED_POOL_SIZE_FOR_ESTIMATE "pool size", SHARED_POOL_SIZE_FACTOR "pool size factor", ESTD_LC_SIZE "estd lc size", ESTD_LC_MEMORY_OBJECTS "estd lc mem obj", ESTD_LC_TIME_SAVED "time saved", ESTD_LC_TIME_SAVED_FACTOR "time saved factor", ESTD_LC_MEMORY_OBJECT_HITS "mem obj hits" v$shared_pool_advice;
6
数据高速缓存区的内存调整建议
长期稳定运行状态下(db_cache_advice=ON)
column size_for_estimate format 999,999,999,999 heading 'Cache Size (m)' column buffers_for_estimate format 999,999,999 heading 'Buffers' column estd_physical_read_factor format 999.90 heading 'Estd Phys|Read Fact' column estd_physical_reads format 999,999,999 heading 'Estd Phys| Reads' SELECT size_for_estimate, buffers_for_estimate,
PGA_TARGET_FOR_ESTIMATE "pga size", PGA_TARGET_FACTOR "pga factor",BYTES_PROCESSED "bytes proc", ESTD_EXTRA_BYTES_RW "estd byte RW", ESTD_PGA_CACHE_HIT_PERCENTAGE "setd pga hit", ESTD_OVERALLOC_COUNT "estd overalloc cnt" v$pga_target_advice;
pool size pool size factor estd lc size estd lc mem obj time saved time saved factor mem obj hits
---------- ---------------- ------------ --------------- ---------- ----------------- ------------