oracle性能调整 Shared pool深入分析及性能调整
http://tech.ddvip.com 2007年09月11日 社区交流
内容摘要:本文首先详细介绍了oracle中shared pool的概念以及所包含的内存结构。然后深入介绍了oracle对于shared pool的管理机制。最后全面介绍了有关buffer cache监控以及调优的实用方法。
b) child table:含有当前对象的子对象,只有游标具有child table.Child table中的每个条目都指向一个可执行的SQL命令所对应的句柄。
c) translation table:包含当前对象所引用的名称是如何解释为oracle底层对象的名称,只有游标具有translation table.
d) authorization table:包含该对象上所对应的权限,一个条目对应一个权限。
e) access table:对于dependency table中的每一个条目,都会在access table中存在对应的一个或多个条目。比如,假设对象A依赖对象B,那么在A的dependency table和access table中都会存在一个条目指向B.位于access table中的指向B的条目说明了对B具有什么样的访问类型,从而也就说明了用户要执行A则必须具有对B的权限。
f) read-only dependency table:类似于dependency table,但是存放只读的对象。
g) schema name table:包含authorization table中的条目所属的schema.
5) data blocks:对象的其他信息会存放在不同的heap中,为了找到这些heap,会在heap 0中存放多个(最多16个,但是这16个data block不会都用到)data blocks结构,每个data block含有指向这些实际heap内存块的指针。
除了heap 0以外,还有11个heap,根据对象的不同进行分配,并存放了不同的内容:
1) Heap 1:存放PL/SQL对象的源代码。
2) Heap 2:存放PL/SQL对象的解析树,这有个好听的名字: DIANA.
3) Heap 3:存放PL/SQL对象的伪代码。
4) Heap 4:存放PL/SQL对象的基于硬件的伪代码。
5) Heap 5:存放了编译时的错误信息。
6) Heap 6:存放了共享游标对象的SQL文本。
7) Heap 7:可用空间。
8) Heaps 8–11:根据对象的不同而使用的子heap.
我们可以通过查询v$db_object_cache来显示library cache中有哪些对象被缓存,以及这些对象的大小
尺寸。比如,我们可以用下面的SQL语句来显示每个namespace中,大小尺寸排在前3名的对象:
select *
from (select row_number() over(partition by namespace order by sharable_mem desc) size_rank,
namespace,
sharable_mem,
substr(name, 1, 50) name
from v$db_object_cache
order by sharable_mem desc)
where size_rank <= 3
order by namespace, size_rank;
责编:豆豆技术应用
- Oracle 10g 教程
- Oracle 故障处理
- Oracle 存储过程
- Oracle 备份恢复
- Oracle 性能调优
- Oracle 9i 教程
- Oracle 11g 教程
- Oracle 启动
- Oracle 命令
- Oracle 数据库管理
- Oracle 时间
- Oracle 密码
- Oracle 用户
- Oracle 常见错误
- Oracle 建数据表
- Oracle 索引
- Oracle 数据库连接
- Oracle 锁
- Oracle RAC 专题
- Oracle exp/imp 命令
- Oracle 表空间
- Oracle 查询
- Oracle 函数
- Oracle PL/SQL 专题
- 更多Oracle 专题>>>