Oracle10g性能调整与优化


1 Oracle Database 10g新功能介绍(针对DBA和开发人员)

 

 1.1 安装改进

 

 1.2 SYSAUX表空间

 

 1.3 自动存储管理

 

 1.4 集群就绪服务(CRS

 

 1.5 服务器生成的警报

 

 1.6 自动工作量仓库(AWR

 

 1.7 自动数据库诊断监控程序(ADDM

 

 1.8 SQL调整顾问

 

 1.9 自动共享内存管理(ASMM

 

 1.10 闪回恢复区

 

 1.11 回收站

 

 1.12 恢复管理器的改动

 

 1.13 透明数据加密(10gR2

 

 1.14 LogMiner的改动

 

 1.15 新的DBMS_STATS选项

 

 1.16 跟踪增强

 

 1.17 DBMS_SCHEDULER

 

 1.18 默认的(永久)表空间

 

 1.19 临时表空间组

 

 1.20 重命名表空间

 

 1.21 大文件表空间

 

 1.22 收缩段

 

 1.23 数据泵(Data Pump

 

 1.24 跨平台的可移植表空间

 

 1.25 写入外部表

 

 1.26 自动撤消保留调整

 

 1.27 包括新信息的V$SESSION

 

 1.28 OEM的改动

 

 1.29 网格控制

 

 1.30 10g版本中的新后台进程

 

 1.31 版本比较表

 

 1.32 新特性回顾

 

 1.33 参考文档

 

2 基本的索引原理(针对DBA和初级开发人员)

 

 2.1 基本的索引概念

 

 2.2 组合索引

 

 2.3 限制索引

 

  2.3.1 使用不等于运算符(<>!=

 

  2.3.2 使用 IS NULLIS NOT NULL

 

  2.3.3 使用函数

 

  2.3.4 比较不匹配的数据类型

 

 2.4 选择性

 

 2.5 集群因子(Clustering Factor

 

 2.6 二元高度(binary height

 

 2.7 使用直方图

 

 2.8 快速全局扫描

 

 2.9 跳跃式扫描

 

 2.10 索引的类型

 

  2.10.1 B树索引

 

  2.10.2 位图索引

 

  2.10.3 HASH索引

 

  2.10.4 索引组织表

 

  2.10.5 反转键索引

 

  2.10.6 基于函数的索引

 

  2.10.7 分区索引

 

  2.10.8 位图连接索引

 

 2.11 快速重建索引

 

 2.12 技巧回顾

 

 2.13 参考文档

 

3 磁盘实现方法和ASM(针对DBA

 

 3.1 成为规范的磁盘阵列

 

  3.1.1 使用磁盘阵列改进性能和可用性

 

  3.1.2 所需的磁盘数量  

 

  3.1.3 可用的RAID级别

 

  3.1.4 更新的RAID 5

 

 3.2 安装和维护传统文件系统

 

 3.3 在硬件磁盘之间分布关键数据文件

 

  3.3.1 分开存储数据和索引文件

 

  3.3.2 避免I/O磁盘争用

 

  3.3.3 通过移动数据文件来均衡文件I/O

 

 3.4 本地托管的表空间

 

  3.4.1 创建本地托管的表空间

 

  3.4.2 把字典托管的表空间迁移到本地托管的表空间

 

  3.4.3 Oracle大文件表空间

 

  3.4.4 Oracle托管文件

 

 3.5 ASM简介

 

  3.5.1 I/O角色之间的通信

 

  3.5.2 ASM实例

 

  3.5.3 ASM init.ora参数

 

  3.5.4 ASM的安装

 

  3.5.5 ASM参数和SGA调整

 

  3.5.6 ASM和权限

 

  3.5.7 ASM磁盘

 

  3.5.8 ASM和多路径

 

  3.5.9 ASM磁盘组

 

  3.5.10 ASM磁盘组和数据库

 

  3.5.11 ASM冗余和故障组

 

  3.5.12 Oracle Database 10gRelease 2中新的空间相关列

 

  3.5.13 集群同步服务

 

  3.5.14 数据库实例和ASM

 

  3.5.15 使用ASM进行数据库合并和集群化

 

  3.5.16 支持ASM的数据库进程

 

  3.5.17 大文件和ASM

 

  3.5.18 支持ASM的数据库init.ora参数

 

  3.5.19 ASM和数据库部署最佳实践

 

  3.5.20 ASM存储管理和分配

 

  3.5.21 ASM重新平衡和重新分布

 

 3.6 使用分区来避免磁盘争用

 

  3.6.1 获得关于分区的更多信息

 

  3.6.2 其他类型的分区

 

  3.6.3 其他分区选项

 

 3.7 使用索引分区

 

 3.8 导出分区

 

 3.9 消除碎片

 

  3.9.1 使用正确的盘区大小

 

  3.9.2 创建一个新表空间并把数据移到其中

 

  3.9.3 导出和重新导入表

 

  3.9.4 正确设定比例以避免链化现象

 

  3.9.5 自动段空间管理

 

  3.9.6 重建数据库

 

 3.10 增加日志文件尺寸和LOG_CHECKPOINT_INTERVAL以提高速度

 

  3.10.1 确定重做日志文件的大小是否存在问题

 

  3.10.2 确定日志文件的大小和检查点的时间间隔

 

 3.11 闪回恢复

 

 3.12 增加恢复的可能性:在每次批处理后提交

 

 3.13 使用回滚段

 

  3.13.1 避免回滚段之间的争用

 

  3.13.2 监控回滚段的等待和争用

 

  3.13.3 增加回滚段

 

  3.13.4 把大的事务隔离到它们自己的回滚段上

 

  3.13.5 更简便的方法:UNDO表空间

 

  3.13.6 监控UNDO空间

 

 3.14 结束有问题的会话

 

 3.15 不要在SYSTEMSYSAUX表空间中执行排序

 

 3.16 在不同磁盘和控制器上存放多个控制文件

 

 3.17 对写操作频繁的数据使用裸设备来提高I/O

 

  3.17.1 使用裸设备的好处

 

  3.17.2 使用裸设备的缺点

 

 3.18 磁盘I/O的其他注意事项和提示

 

 3.19 设计阶段需要注意的问题

 

 3.20 技巧回顾

 

 3.21 参考文档

 

4 用初始参数调整数据库(针对DBA

 

 4.1 标识重要的初始参数

 

 4.2 不用重启就修改初始参数

 

 4.3 Enterprise Manager 查看初始参数

 

 4.4 调整DB_CACHE_SIZE来提高性能

 

  4.4.1 在调整DB_CACHE_SIZE时使用V$DB_CACHE_ADVICE

 

  4.4.2 保证数据缓存命中率超过95

 

  4.4.3 监控V$SQLAREA视图以查找较慢的查询

 

 4.5 设定DB_BLOCK_SIZE来反映数据读取量的大小

 

  4.5.1 调整SHARED_POOL_SIZE以优化性能

 

  4.5.2 使用Oracle的多个缓冲池

 

  4.5.3 调整PGA_AGGREGATE_TARGET以优化对内存的应用

 

  4.5.4 修改SGA大小以避免分页和交换

 

  4.5.5 了解基于成本的优化

 

  4.5.6 创建足够的调度程序  

 

  4.5.7 25个重要的初始化参数

 

  4.5.8 查找未归档的初始参数

 

  4.5.9 了解典型的服务器

 

  4.5.10 典型的服务器模式

 

  4.5.11 调整Oracle Application数据库

 

 4.6 技巧回顾

 

 4.7 参考文档

 

5 企业管理器和网格控制(针对DBA和开发人员)

 

 5.1 企业管理器(EM)基础

 

 5.2 All Targets和其他分组开始

 

 5.3 Policies Violations)选项卡

 

 5.4 监控数据库

 

  5.4.1 Database Administration选项卡

 

  5.4.2 Database Administration选项卡:Tablespace

 

  5.4.3 Database Administration选项卡:实例级别

 

  5.4.4 Database Administration选项卡:All InitializationParameters

 

  5.4.5 Database Administration选项卡:Manage Optimizer Statistics

 

  5.4.6 Database Administration选项卡(实例级别):

 

  5.4.7 Database Maintenance选项卡

 

  5.4.8 Database Topology选项卡

 

  5.4.9 Database Performance选项卡

 

 5.5 监控主机

 

 5.6 监控应用服务器

 

 5.7 监控Web应用程序

 

 5.8 Deployments选项卡(补丁选项)

 

 5.9 Jobs选项卡

 

 5.10 Reports选项卡

 

 5.11 自动存储管理的性能

 

 5.12 小结

 

 5.13 技巧回顾

 

 5.14 参考文档

 

6 使用EXPLAINSTORED OUTLINES(针对DBA和开发人员)

 

 6.1 OracleSQL TRACE实用程序

 

  6.1.1 对简单查询使用SQL TRACE的简单步骤

 

  6.1.2 TRACE输出部分

 

  6.1.3 更复杂的TKPROF输出

 

  6.1.4 深入探讨TKPROF输出

 

  6.1.5 使用DBMS_MONITOR10g的新特性)

 

  6.1.6 使用TRCSESS将多个跟踪文件保存到一个文件中(10g的新特性)

 

  6.1.7 单独使用EXPLAINPLAN

 

  6.1.8 EXPLAIN PLAN—— 从上至下读取和从下至上读取

 

  6.1.9 阅读EXPLAIN PLAN

 

  6.1.10 使用DBMS_XPLAN

 

  6.1.11 另一种EXPLAIN PLAN输出方法:构建树结构

 

  6.1.12 另一个使用树的例子

 

  6.1.13 在开发产品中利用TRACE/EXPLAIN发现有问题的查询

 

  6.1.14 PLAN_TABLE表中的重要列

 

  6.1.15 Oracle支持的一些有用的程序包

 

  6.1.16 适用于未记录入档的TRACE操作的初始参数

 

  6.1.17 使用存储纲要

 

  6.1.18 使用Plan Stability(存储纲要)

 

 6.2 技巧回顾

 

7 基本的提示语法(针对DBA和开发人员)

 

 7.1 最常用的提示

 

  7.1.1 谨慎使用提示

 

  7.1.2 首先修正设计方案

 

 7.2 可用的提示和分组

 

  7.2.1 改变执行路径

 

  7.2.2 使用访问方法提示

 

  7.2.3 使用查询转换提示

 

  7.2.4 使用连接操作提示

 

  7.2.5 使用并行执行

 

  7.2.6 其他提示

 

 7.3 指定提示

 

 7.4 指定多个提示

 

 7.5 使用别名时,提示别名而不是表名

 

 7.6 使用提示

 

  7.6.1 使用FIRST_ROWS提示

 

  7.6.2 使用ALL_ROWS提示

 

  7.6.3 使用FULL提示

 

  7.6.4 使用INDEX提示

 

  7.6.5 使用NO_INDEX提示

 

  7.6.6 使用INDEX_JOIN提示

 

  7.6.7 使用INDEX_COMBINE提示

 

  7.6.8 使用INDEX_ASC提示

 

  7.6.9 使用INDEX_DESC提示

 

  7.6.10 使用INDEX_FFS提示

 

  7.6.11 使用ORDERED提示

 

  7.6.12 使用LEADING提示

 

  7.6.13 使用NO_EXPAND提示

 

  7.6.14 使用DRIVING_SITE提示

 

  7.6.15 使用USE_MERGE提示

 

  7.6.16 使用USE_NL提示

 

  7.6.17 使用USE_HASH提示

 

  7.6.18 使用PUSH_SUBQ提示

 

  7.6.19 使用PARALLEL提示

 

  7.6.20 使用NO_PARALLEL提示

 

  7.6.21 使用APPEND提示

 

  7.6.22 使用NOAPPEND提示

 

  7.6.23 使用CACHE提示

 

  7.6.24 使用NOCACHE提示

 

  7.6.25 使用CLUSTER提示

 

  7.6.26 使用HASH提示

 

  7.6.27 使用CURSOR_ SHARING_EXACT提示

 

  7.6.28 使用QB_NAME提示

 

 7.7 其他一些提示和注意事项

 

 7.8 使用提示可能遇到的问题

 

 7.9 提示一览表

 

 7.10 技巧回顾

 

 7.11 参考文档

 

8 调整查询(针对开发人员和初级DBA

 

 8.1 调整哪些查询?查询V$SQLAREA

 

  8.1.1 V$SQLAREA视图中选出最占用资源的查询

 

  8.1.2 V$SQL视图中选出最占用资源的查询

 

 8.2 选出最占用资源的会话和查询的新10g视图

 

  8.2.1 V$SESSMETRIC视图中选出当前最占用资源的会话

 

  8.2.2 查看可用的AWR快照

 

  8.2.3 DBA_HIST_SQLSTAT视图中选出最占用资源的查询

 

  8.2.4 dba_hist_sqlstat视图中选择查询文本

 

  8.2.5 DBA_HIST_SQL_PLAN视图中选出查询执行计划

 

 8.3 确定何时使用索引

 

 8.4 遗忘索引

 

 8.5 创建索引

 

 8.6 查看表上的索引

 

 8.7 修正差的索引

 

 8.8 在删除索引时保持谨慎

 

 8.9 SELECTWHERE中的列使用索引

 

 8.10 使用快速全局扫描

 

 8.11 使查询魔术般加速

 

 8.12 在内存中缓存表

 

 8.13 使用多个索引(利用最佳选择性)

 

 8.14 使用索引合并

 

 8.15 处理受限制的索引

 

 8.16 使用基于函数的索引

 

 8.17 了解“古怪”的OR

 

 8.18 使用EXISTS函数

 

 8.19 表就是视图

 

 8.20 SQL和“大一统”理论

 

 8.21 Oracle Database 10g中的调整修改

 

 8.22 10g自动SQL调整

 

  8.22.1 保证调整用户能访问API

 

  8.22.2 创建调整任务

 

  8.22.3 查看顾问日志中的任务

 

  8.22.4 执行SQL调整任务

 

  8.22.5 查看调整任务的状态

 

  8.22.6 显示SQL调整顾问报告

 

  8.22.7 检查报告输出

 

 8.23 技巧回顾

 

 8.24 参考文档

 

9 表的连接和其他高级调整技术(针对DBA和开发人员)

 

 9.1 连接方法

 

  9.1.1 嵌套循环连接

 

  9.1.2 排序合并连接

 

  9.1.3 集群连接

 

  9.1.4 散列连接

 

  9.1.5 索引连接

 

 9.2 表连接的初始化参数排序合并与散列连接参数

 

 9.3 双表连接:等尺寸表(基于成本)

 

 9.4 双表索引连接:等尺寸表(基于成本)

 

 9.5 强制执行特殊的连接方法

 

 9.6 在多表连接中除去连接记录(侯选行)

 

 9.7 在大小不同的表间进行双表连接

 

 9.8 三表连接(基于成本)

 

 9.9 位图连接索引

 

 9.10 第三方性能调整工具

 

 9.11 调整分布式查询

 

 9.12 一切就绪

 

 9.13 各种调整技术摘要

 

  9.13.1 外部表

 

  9.13.2 数据快照太旧:开发人员的编程难题

 

  9.13.3 设置事件以转储每次等待

 

  9.13.4 使用EXISTS操作符有效缩短时间

 

 9.14 在块级别进行调整

 

 9.15 使用简单的数学方法调整性能

 

  9.15.1 传统的数学分析

 

  9.15.2 方法论的七个步骤

 

  9.15.3 模式分析

 

  9.15.4 数学方法总结

 

 9.16 连接调整:关系模型与对象关系模型的性能

 

  9.16.1 使用的模型

 

  9.16.2 结果

 

  9.16.3 总结

 

 9.17 技巧回顾

 

 9.18 参考文档

 

10 使用PL/SQL提高性能(针对DBA和开发人员)

 

 10.1 使用DBMS_APPLICATION_INFO进行实时监控

 

 10.2 RAC环境中为实时监控使用自定义包代替DBMS_APPLICATION_INFO

 

 10.3 在数据库的表中记录计时信息

 

 10.4 减少PL/SQL程序的单元迭代和迭代的时间

 

 10.5 使用ROWID进行迭代处理

 

 10.6 将数据类型、IF语句的排列和PLS_INTEGER

 

  10.6.1 确保比较运算中的数据类型相同

 

  10.6.2 根据条件出现的频率来排序IF条件

 

  10.6.3 使用PLS_INTEGER PL/SQL数据类型进行整数运算

 

 10.7 减少对SYSDATE的调用

 

 10.8 减少MOD函数的使用

 

 10.9 共享池和固定PL/SQL对象

 

  10.9.1 PL/SQL对象语固定(缓存)到内存中

 

  10.9.2 固定所有的包

 

 10.10 标识需要固定的PL/SQL对象

 

 10.11 使用和修改DBMS_ SHARED_POOL.SIZES

 

 10.12 DBA_OBJECT_SIZE 中获取详细的对象信息

 

 10.13 发现无效的对象

 

 10.14 发现已禁用的触发器

 

 10.15 PL/SQL表用于快速参考表查询

 

 10.16 查找和调整所使用对象的SQL

 

 10.17 在处理DATE数据类型时使用时间信息

 

 10.18 调整和测试PL/SQL

 

 10.19 了解PL/SQL对象定位的含义

 

 10.20 使用回滚段打开大型游标

 

 10.21 使用数据库的临时表来提高性能

 

 10.22 集成用户跟踪机制以定位执行位置

 

 10.23 限制动态SQL的使用

 

 10.24 使用管道表函数来建立复杂结果集

 

 10.25 别管调试命令

 

 10.26 为初学者提供的例子

 

  10.26.1 创建PL/SQL代码

 

  10.26.2 创建过程

 

  10.26.3 执行PL/SQL过程

 

  10.26.4 创建函数

 

  10.26.5 SQL中执行GET_CUST_NAME函数

 

  10.26.6 创建数据包

 

  10.26.7 在数据库触发器中使用PL/SQL

 

 10.27 技巧回顾

 

 10.28 参考文档

 

11 调整RAC和使用并行特性

 

 11.1 实时应用集群(RAC)

 

  11.1.1 并行数据库

 

  11.1.2 Oracle RAC的体系结构

 

  11.1.3 Oracle RAC系统的内部工作方式

 

  11.1.4 SCN 处理

 

  11.1.5 RAC性能调整概述

 

  11.1.6 RAC等待事件和互连统计数据

 

  11.1.7 集群互连调整——硬件等级

 

  11.1.8 使用企业管理器网格控制调整RAC

 

 11.2 并行操作的基本概念

 

 11.3 并行DMLDDL语句和操作

 

 11.4 Oracle 9i的并行DML语句和操作

 

 11.5 并行处理和分区

 

 11.6 操作内部和操作之间的并行处理

 

 11.7 使用并行操作生成表和索引的示例

 

 11.8 并行DML语句和示例

 

  11.8.1 并行DML的约束条件

 

  11.8.2 并行DML语句示例

 

 11.9 通过V$视图监控并行操作

 

  11.9.1 V$PQ_TQSTAT

 

  11.9.2 V$PQ_SYSSTAT

 

  11.9.3 V$PQ_SESSTAT

 

 11.10 在并行操作时使用EXPLAIN PLANAUTOTRACE

 

 11.11 调整并行执行和Oracle 9i初始化参数

 

 11.12 并行加载

 

 11.13 性能比较和监控并行操作

 

 11.14 优化RAC中的并行操作

 

  11.14.1 并行操作的目标

 

  11.14.2 RAC并行使用模型

 

  11.14.3 初始化参数

 

  11.14.4 查看并行统计数据的V$视图

 

  11.14.5 并行配置和相关基线测试

 

  11.14.6 并行查询测试示例

 

  11.14.7 Create Table As

 

  11.14.8 索引构建

 

  11.14.9 性能考虑因素和小结

 

 11.15 使用并行处理时的其他注意事项

 

 11.16 技巧回顾

 

 11.17 参考文档

 

12 V$视图(针对开发人员和DBA

 

13 X$表(针对高级DBA

 

14 使用STATSPACKAWR报表调整等待和闩锁

 

15 执行快速系统检查(针对DBA

 

16 使用UNIX工具监控系统(针对DBA

 

附录A 主要的初始化参数(针对DBA)附录B V$视图(针对DBA和开发人员)

 

附录C X$表(针对DBA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 11g RAC 是一种高可用性和扩展性的数据库架构,SGA(System Global Area)是属于Oracle数据库实例的关键组件之一。为了优化Oracle 11g RAC SGA,我们可以采取以下措施: 1. 调整SGA的大小:通过增加SGA的大小,可以提高数据库实例的性能。可以使用Oracle的动态SGA功能,根据实际工作负载动态分配和调整SGA的大小。 2. 分配适当的内存给不同的组件:SGA由多个组件组成,如数据字典缓冲区、共享池、重做日志缓冲区等。根据应用程序的需求,可以调整每个组件的大小,以便分配适当的内存资源。 3. 使用AMM自动管理内存:Oracle 11g引入了AMM(Automatic Memory Management)功能,可自动管理和分配SGA和PGA(Program Global Area)的内存资源。这使得动态调整内存变得更加简单和高效。 4. 使用In-Memory列存储:Oracle 12c引入了In-Memory列存储功能,允许将部分或全部表的数据加载到内存中进行查询,以提高查询性能。可以考虑使用此功能在RAC环境中提升SGA性能。 5. 使用高性能存储系统:SGA性能还受存储系统的影响。选择具备高性能的存储系统,如固态硬盘(SSD),可以显著提高SGA性能。 总之,通过适当的SGA调整、内存管理和存储系统的优化,可以提高Oracle 11g RAC系统的性能和可用性。这将有助于提升数据库的处理速度,提高应用程序的响应性和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值