- 浏览: 89223 次
- 性别:
- 来自: 深圳
文章分类
对于OLTP系统,应该关注以下的对象属性
pct_free 一个数据块空闲空间的最小百分比
pct_used 一个数据块中存储数据的最小百分比
ini_trans 一个数据块中最初分配的事务数
max_trans 一个数据块中最大分配的事务数
initial_extent 第一个EXTENT的大小
next_extent 下一个extent的大小
min_extents 段首次分配的extent数量
max_extents 段最大可分配的extent数量
pct_increase extent扩展时,每次增加的百分数
freelists 段中空闲数据块列表
cache 是否缓存到内存中
2 并行度--oracle在并行处理时,会启动多少个并行进程来同时执行任务,并行度越高,
并行进程越多,执行速度
会越快
查看某个表的并行度:select degree from user_tables where table_name='XXX'
如果设置并行度为默认值,则使用下面的公式计算:
服务器CPU数*每个CPU启用的线程数=并行度
如果是RAC,则所有参与并行处理的实例CPU数*每个CPU启用的线程数=并行度
set autotrace off;
show parameter parallel_server_instances;
show parameter cpu;
3 默认表不使用并行处理,可以用hint的方式强制使用并行处理
select /*+parallel(t1 4) */ * from t1 ,使用4的并行
4 索引上的并行度
create index t1_idx on t1(object_id) parallel;
oracle当认为当允许多数据块读取是,才会使用并行
5 分区表或者分区索引是可以单独压缩的
1) 比如:一个分区表中,如果设置表级压缩,则所有分区都会被压缩
alter table t1 compress;
也可以一个分区表中,其中若干个分区使用压缩属性,另外1个不使用。
create .......
partition p1 values ...... compress,
不用的分区不加compress属性
单单对某个分区压缩:
alter table t1 modify partition p1 compress;
//可以为表的索引先压缩,然后才能对分区表的索引进行压缩(注意,否则出错)
create index t1_idx on t1(object_id) local compress;
2) 对于索引压缩,只有键值重复高的时候才有意义,对于主键类的压缩,作用不大,
反而消耗更多空间。
3)压缩表后,数据的查询性能各方面都会有不少提升
6 CBO的分析中,当表的数据变化后,应该尽可能及时对表进行重新分析
7 分析CBO
exec dbms_stats.gather_table_stats(user,'表名',cascade=>true);
set autotrace trace exp stat;
删除T表上的分析信息
exec dbms_stats.delete_table_stats
(ownername=>user,tablename=>'T',cascade_indexes=>true);
要注意的是:要是数据表中一旦有了分析数据,不论如何,oracle将不采用动态采样技
术,而如果数据表字段发生了改变,也应该用CBO分析技术重新分析下。
8) RAC:一个数据库对应多个实例,数据库以共享的方法被多个实例打开
,两个实例分别安装到服务器中,而数据库服务器,则被部署到一个SAN存储系统中,
实例之间通过
oracle cache fusion通道访问。
9) RAC不是一种高效的内存结构,oracle要通过一系列手段来保证数据块的版本一致。
10) 可以将某类或几类的业务分配到某一个或者几个实例上,避免cache fuson导致的等
待事件发生
11) dataguard保护模式
1) 最高保护模式
即假如日志写不入standby数据库,会关闭
2) 最高性能模式
该方式对性能影响最小,为默认保护模式,不需要日志实时复制到standby数据
库,如果日志无法传递到standby,则一直尝试知道成功为止
3)最高可用性
正常情况下,跟最高保护模式一样,但当日志无法写入时,会切换到最高性能模
式,主数据库不会DOWN。
OK后又切换为最高保护模式。
4)standby的类型,分为物理,逻辑。
A)物理standby: 物理结构上跟主数据库完全一致,包括数据块到文件,再到数据
库中的对象和主数据库
都保持一致,通过REDO日志去备份,可以以只读方式打开,当重新MOUNT后,才继续接收
主数据库的REDO日志
B)逻辑standby: 从REDO日志中提取SQL执行,可以允许对STANDBY数据库修改,比
物理STANDBY要慢
12) ASM:只需要创建一个ASM实例来管理ASM存储即可,剩下的就是将所有表空间的数据文
件指向ASM存储。ASM使用后,不需要关心每个磁盘的利用率,也不需要关心表空间的使用
率,这种情况下,表空间可以设置为自动扩展。ASM的实例状态永远为start状态,没控制
文件,ASM也不会有mount和open状态。
13) ASM可以通过rebalance操作,将数据在所有磁盘中重新分布,
14) 内存相关参数
SGA_TARGET:希望把SGA的目标大小控制在某个范围内。可以使用oracle的分析建议
器,sga增大,物理读次数会减少,但不能无限制增大SGA,要衡量下相关的平衡问题。
15)io参数
1、db_file_multiblock_read_count:oracle在一次连续扫描时,允许IO读取的最大
数据块数,但每次I/O大小不能超过oracle运行的操作系统最大IO值(通常1MB)
在OLTP中,每次读取的记录数少,可以设置该值小点;而OLAP,因为查询量大,
可以设置大些,但多数据块的读取只发生在以下两种情况下:
FULL TABLE SCAN、INDEX FAST FULL SCAN
在ORCLE 10G R2以后的版本中,oracle不建议修改它的默认值
2 db_writer_process
参数意思是:设置多个db_write进程,加快数据从缓冲区向磁盘写入速度。
,负责将数据缓冲区的脏数据(修改过的数据块)写入磁盘中,
3、disk_asynch_io:
允许oracle在数据写入时以异步方式写入,效果更高,不用等操作系统反馈,
继续下一个块的读入;
4 DBWR_io_slaves:
模拟一个异步IO系统的,当只有一个db_writer时有意义,即只有一个
DBW0后台进程。
5 db_files:用来约束数据库打开的文件数,默认值为200
6 cursor_sharing:告诉ORACLE什么情况下可以用共同游标,三个值:
EXACT:orcle的推荐值。要求SQL语句完全相同时,才重用。
SIMILAR:oracle认为某条SQL语句的谓词条件可能影响执行计划时,才会被重新分
析
force:无条件重用SQL
OLAP中,应该使用EXACT,因为不大需要SQL重用。
pct_free 一个数据块空闲空间的最小百分比
pct_used 一个数据块中存储数据的最小百分比
ini_trans 一个数据块中最初分配的事务数
max_trans 一个数据块中最大分配的事务数
initial_extent 第一个EXTENT的大小
next_extent 下一个extent的大小
min_extents 段首次分配的extent数量
max_extents 段最大可分配的extent数量
pct_increase extent扩展时,每次增加的百分数
freelists 段中空闲数据块列表
cache 是否缓存到内存中
2 并行度--oracle在并行处理时,会启动多少个并行进程来同时执行任务,并行度越高,
并行进程越多,执行速度
会越快
查看某个表的并行度:select degree from user_tables where table_name='XXX'
如果设置并行度为默认值,则使用下面的公式计算:
服务器CPU数*每个CPU启用的线程数=并行度
如果是RAC,则所有参与并行处理的实例CPU数*每个CPU启用的线程数=并行度
set autotrace off;
show parameter parallel_server_instances;
show parameter cpu;
3 默认表不使用并行处理,可以用hint的方式强制使用并行处理
select /*+parallel(t1 4) */ * from t1 ,使用4的并行
4 索引上的并行度
create index t1_idx on t1(object_id) parallel;
oracle当认为当允许多数据块读取是,才会使用并行
5 分区表或者分区索引是可以单独压缩的
1) 比如:一个分区表中,如果设置表级压缩,则所有分区都会被压缩
alter table t1 compress;
也可以一个分区表中,其中若干个分区使用压缩属性,另外1个不使用。
create .......
partition p1 values ...... compress,
不用的分区不加compress属性
单单对某个分区压缩:
alter table t1 modify partition p1 compress;
//可以为表的索引先压缩,然后才能对分区表的索引进行压缩(注意,否则出错)
create index t1_idx on t1(object_id) local compress;
2) 对于索引压缩,只有键值重复高的时候才有意义,对于主键类的压缩,作用不大,
反而消耗更多空间。
3)压缩表后,数据的查询性能各方面都会有不少提升
6 CBO的分析中,当表的数据变化后,应该尽可能及时对表进行重新分析
7 分析CBO
exec dbms_stats.gather_table_stats(user,'表名',cascade=>true);
set autotrace trace exp stat;
删除T表上的分析信息
exec dbms_stats.delete_table_stats
(ownername=>user,tablename=>'T',cascade_indexes=>true);
要注意的是:要是数据表中一旦有了分析数据,不论如何,oracle将不采用动态采样技
术,而如果数据表字段发生了改变,也应该用CBO分析技术重新分析下。
8) RAC:一个数据库对应多个实例,数据库以共享的方法被多个实例打开
,两个实例分别安装到服务器中,而数据库服务器,则被部署到一个SAN存储系统中,
实例之间通过
oracle cache fusion通道访问。
9) RAC不是一种高效的内存结构,oracle要通过一系列手段来保证数据块的版本一致。
10) 可以将某类或几类的业务分配到某一个或者几个实例上,避免cache fuson导致的等
待事件发生
11) dataguard保护模式
1) 最高保护模式
即假如日志写不入standby数据库,会关闭
2) 最高性能模式
该方式对性能影响最小,为默认保护模式,不需要日志实时复制到standby数据
库,如果日志无法传递到standby,则一直尝试知道成功为止
3)最高可用性
正常情况下,跟最高保护模式一样,但当日志无法写入时,会切换到最高性能模
式,主数据库不会DOWN。
OK后又切换为最高保护模式。
4)standby的类型,分为物理,逻辑。
A)物理standby: 物理结构上跟主数据库完全一致,包括数据块到文件,再到数据
库中的对象和主数据库
都保持一致,通过REDO日志去备份,可以以只读方式打开,当重新MOUNT后,才继续接收
主数据库的REDO日志
B)逻辑standby: 从REDO日志中提取SQL执行,可以允许对STANDBY数据库修改,比
物理STANDBY要慢
12) ASM:只需要创建一个ASM实例来管理ASM存储即可,剩下的就是将所有表空间的数据文
件指向ASM存储。ASM使用后,不需要关心每个磁盘的利用率,也不需要关心表空间的使用
率,这种情况下,表空间可以设置为自动扩展。ASM的实例状态永远为start状态,没控制
文件,ASM也不会有mount和open状态。
13) ASM可以通过rebalance操作,将数据在所有磁盘中重新分布,
14) 内存相关参数
SGA_TARGET:希望把SGA的目标大小控制在某个范围内。可以使用oracle的分析建议
器,sga增大,物理读次数会减少,但不能无限制增大SGA,要衡量下相关的平衡问题。
15)io参数
1、db_file_multiblock_read_count:oracle在一次连续扫描时,允许IO读取的最大
数据块数,但每次I/O大小不能超过oracle运行的操作系统最大IO值(通常1MB)
在OLTP中,每次读取的记录数少,可以设置该值小点;而OLAP,因为查询量大,
可以设置大些,但多数据块的读取只发生在以下两种情况下:
FULL TABLE SCAN、INDEX FAST FULL SCAN
在ORCLE 10G R2以后的版本中,oracle不建议修改它的默认值
2 db_writer_process
参数意思是:设置多个db_write进程,加快数据从缓冲区向磁盘写入速度。
,负责将数据缓冲区的脏数据(修改过的数据块)写入磁盘中,
3、disk_asynch_io:
允许oracle在数据写入时以异步方式写入,效果更高,不用等操作系统反馈,
继续下一个块的读入;
4 DBWR_io_slaves:
模拟一个异步IO系统的,当只有一个db_writer时有意义,即只有一个
DBW0后台进程。
5 db_files:用来约束数据库打开的文件数,默认值为200
6 cursor_sharing:告诉ORACLE什么情况下可以用共同游标,三个值:
EXACT:orcle的推荐值。要求SQL语句完全相同时,才重用。
SIMILAR:oracle认为某条SQL语句的谓词条件可能影响执行计划时,才会被重新分
析
force:无条件重用SQL
OLAP中,应该使用EXACT,因为不大需要SQL重用。
发表评论
-
SGA与PGA
2012-02-27 10:59 9303一、名词解释 (1)SGA:System Global Are ... -
SGA与PGA
2012-02-27 10:59 0一、名词解释 (1)SGA:System Global Are ... -
ORALCE函数大全
2012-02-21 14:08 757ORACLE日期时间函数大全 TO_DAT ... -
regex
2012-02-03 15:18 788ORACLE中的支持正则表达 ... -
oracle 等待
2012-02-02 15:17 1179ORACLE的等待事件,主要可以分为两类,即空闲(IDLE)等 ... -
oracle em
2012-01-31 14:16 773访问地址:https://localhost:1158/em ... -
oracle 正则表达式
2012-01-13 17:26 7941、正则表达式中的元字符 元字 ... -
oracle 事件
2011-12-30 16:32 929很多时候,对数据库进行性能诊断可以使用SQL跟踪的方法,把一些 ... -
ORA-01548: 已找到活动回退段'_SYSSMU1$',终止删除表空间 解决办法
2011-12-29 19:59 13421 查看所有回滚段信息: select segment_nam ... -
重做表空间
2011-12-29 18:03 896/*系统UNDO表空间的重建*/ --1. 创建新的UNDO ... -
存储过程使用dblink问题
2011-12-21 16:22 5771按照接口标准创建DBlink后. 准备创建物化视图: CR ... -
数据参数出错 ORA-00119 ORA-00132
2011-12-09 11:07 4585SQL> startup ORA-00119: inva ... -
物化视图使用
2011-11-29 13:29 804物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副 ... -
精通表转成分区表
2011-11-15 20:15 369SQL> CREATE TABLE T_N (ID NU ... -
oracle 归档日志
2011-11-15 15:44 723Oracle可以将联机日志文件保存到多个不同的位置,将 ... -
rman 详细
2011-11-03 18:33 5881、连接到目标数据库(不用恢复目录数据库): R ... -
RMAN备份命令(转摘)
2011-11-03 15:21 6431、切换服务器归档模式,如果已经是归档模式可跳过此步: %sq ... -
增量备份
2011-10-24 17:41 8141. 确认ORACLE数据库属于归档模式 sqlplus ... -
表同步
2011-10-24 17:40 667--名词说明:源——被同步的数据库 目 ... -
oracle 权限查询
2011-10-11 12:04 704查看Oracle用户权限一般要通过一些实际操作,首先需要遍历所 ...
相关推荐
《基于成本的Oracle优化法则》是数据库专家Jonathan Lewis的一部经典著作,该书深入探讨了Oracle数据库的性能优化策略,特别是在成本基础优化方面。Oracle数据库是全球广泛使用的大型企业级数据库系统,其性能优化...
Oracle 优化常用概念 Oracle 优化器是 Oracle 数据库管理系统中一个核心组件,负责根据用户提交的 SQL 语句生成最优的执行计划,以提高查询效率。以下是 Oracle 优化器中的一些常用概念: CBO/RBO Oracle 优化...
"基于成本的Oracle优化法则"是一个重要的概念,它涉及到Oracle数据库查询优化器的工作原理。在这个主题中,我们将深入探讨这一法则,理解其背后的机制,并学习如何利用这些知识来提升数据库性能。 1. **基于成本的...
Oracle 优化器介绍 Oracle 优化器是 Oracle 数据库中的一种核心组件,负责生成执行计划,以提高 SQL 语句的执行效率。 Oracle 优化器可以分为两大类:基于规则的优化器(RBO)和基于成本的优化器(CBO)。 基于...
Oracle优化设计方案旨在提升数据库性能,确保数据安全,便于管理和开发。设计Oracle数据库时,需要遵循一系列基本原则和步骤。 首先,逻辑建模是根据系统需求分析数据间的内在和外在关系,构建整个系统的数据结构。...
### Oracle优化重量级知识点解析 #### 一、Oracle优化的重要性 在数据库管理领域,Oracle数据库因其卓越的性能、稳定性和安全性而被广泛采用。然而,随着业务量的增长和技术的发展,即使是像Oracle这样的顶级...
### Oracle优化方法与实践 #### 一、优化器模式选择 在进行Oracle数据库优化时,首先需要关注的是优化器模式的选择。Oracle提供了多种优化器模式,包括基于规则的优化器(RULE)、基于成本的优化器(COST)以及...
本篇将围绕"Oracle 优化 金牌 DBA 日记"这一主题,深入探讨Oracle数据库优化的相关知识点。 1. **索引优化**:索引是提升查询性能的关键工具。金牌DBA会根据查询模式和数据分布情况创建和维护索引,如B树索引、位图...
资源名称:基于成本的Oracle优化法则内容简介:数据库领域的超级畅销书,世界级Oracle大师Jonathan Lewis的最新力作,也是近几年来Oracle领域最重要的著作之一,荣获2006年年度Oracle杂志编辑选择大奖。自该书出版...
基于成本的Oracle优化法则是一种科学的方法,用于确保数据库查询的高效执行。本篇文章将深入探讨这一主题,旨在帮助数据库管理员(DBA)和开发人员理解并应用这些法则来提升系统性能。 首先,我们要理解什么是基于...
《Oracle优化日记——一个金牌DBA的故事》这本书深入浅出地揭示了Oracle数据库优化的精髓。作为一名金牌DBA,作者以其丰富的实战经验,通过一系列的实际案例,讲述了在Oracle数据库管理与优化过程中的种种挑战和解决...
《基于成本的Oracle优化法则》是一本深入探讨Oracle数据库性能优化的专业书籍,共计573页,涵盖了Oracle数据库优化的方方面面。这本书对于Oracle数据库管理员、开发人员以及对数据库性能优化有需求的技术人员来说,...
Oracle优化器是Oracle数据库中一个重要的组件,负责在数据库执行SQL查询时,选择最有效的执行计划。理解Oracle优化器的工作原理和案例对于数据库管理员来说至关重要,可以帮助他们调整和优化SQL执行,从而提高数据库...
### Oracle优化器深入解析 #### Oracle优化器概览 Oracle数据库优化器负责分析SQL语句并确定执行查询的最有效方式。它通过考虑多种因素,包括表和索引的统计数据,来选择最佳的执行计划。Oracle优化器经历了从基于...
《Oracle优化日记》是两本深入探讨Oracle数据库性能优化的专业书籍,由金牌DBA撰写,旨在分享其在实际工作中的经验和技巧。Oracle优化是数据库管理中的核心任务,它关乎系统的响应速度、资源利用率以及整体性能。这...
ORACLE 优化 SQL 语句提高 Oracle 执行效率 Oracle 是一个功能强大的关系数据库管理系统,然而,如果不正确地使用 SQL 语句,可能会导致执行效率低下。为了提高 Oracle 的执行效率,需要遵循一些最佳实践。下面是...
"基本成本的Oracle优化法则"这一主题涵盖了数据库性能提升的多个重要方面。源代码的分享通常是为了帮助开发者和DBA(数据库管理员)深入理解Oracle的工作原理,从而更有效地进行性能调优。下面,我们将详细探讨这些...
《Oracle优化日记:一个金牌DBA的故事》这本书深入探讨了Oracle数据库的性能优化技术,是DBA们不可或缺的参考资料。作者通过自身丰富的实战经验,分享了一系列解决实际问题的方法和策略,帮助读者理解Oracle数据库的...
### Oracle优化教程知识点详解 #### 一、选用适合的Oracle优化器 在Oracle数据库中,优化器的选择对于SQL语句的执行效率至关重要。Oracle提供了三种优化器类型:基于规则(RULE)、基于成本(COST)和选择性...
### Oracle优化工具详解 在IT领域,特别是在数据库管理与维护方面,Oracle数据库因其稳定性和强大的功能而被广泛采用。为了确保Oracle数据库能够高效运行并满足业务需求,一系列的优化工具应运而生。本文将围绕...