让Oracle跑得更快:Oracle10g性能分析与优化思路

本文深入探讨了影响Oracle数据库性能的各种因素,包括软件设计、架构、代码编写、数据库设计、OLTP与OLAP系统、硬件配置、锁和阻塞、外键、Latch与等待等问题,并详细解析了优化器、执行计划、SQL执行顺序、SQL_TRACE和性能视图等关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引起数据库性能问题的因素

软件设计对数据库的影响

软件架构设计对数据库性能的影响

软件代码的编写对数据库性能的影响

数据库的设计

OLTP:在线事务处理系统,用户并发数多。例如售票系统。

OLAP:在线分析系统。例如报表系统。

DSS:决策支持系统

数据库的硬件设计

存储容量:这里介绍了如何估算表所占空间的大小。

存储的物理设计:SAN存储结构

数据的安全:Data Guard结构、RAC结构、Rman+归档。

锁和阻塞

外键的创建,会影响性能。当你需要修改或者删除主表数据时,总是会锁定扫描从表,保证数据的完整性。

Latch和等待

Latch,类似于锁一样的资源,是为了保护内存结构而发明的一种资源。它是一种轻量级的锁,不会造成阻塞,只会导致等待。

阻塞,是一种系统设计上的问题,等待,是一种系统资源争用的问题。

共享池中的Latch争用

数据缓存池Latch争用

访问频率非常高的数据块被称为热快。

优化器

RBO:基于规则的优化器,从oracle10g开始,被弃用。

CBO:基于代价的优化器,有两种模式可以选择,FIRST_ROWS(n)优先考虑将结果集中的前n条记录以最快的速度反馈回来;ALL_ROWS,全表扫描。

执行计划

Cardinality(基数)/Rows:

SQL的执行计划

Hint

分析及动态采样

直方图:数据在列上的分布情况

DBMS_STATS包:性能输的收集、设置、删除、备份和恢复。

动态采样:

并行执行

变量绑定

SQL执行顺序:先判断是否有相同hash值存在的sql,如果没有,那么进行语法分析、语义分析、生成执行计划、执行sql。

SQL_TRACE和10046事件

10053事件

性能视图和性能参数

性能报告

----摘自《让Oracle跑得更快:Oracle10g性能分析与优化思路》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值