频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Shared pool深入分析及性能调整

来源: 作者: 出处:巧巧读书 2007-08-14 进入讨论组
上一页 1 2 3 4 5 6 下一页 
访问 http://www.qqread.com/oracle/2007/08/f325916.html

  Heap是通过调用服务器进程进行分配的,任何对象都具有heap 0,至于还应该分配哪些其他的heap则是由对象的类型决定的,比如SQL游标具有heap 1和 6,而PL/SQL程序包则具有heap 1、2、3和4.按照heap的使用情况,oracle会在SGA(library cache)、PGA或UGA中分配heap,

但是heap 0始终都是在library cache中进行分配的。如果所请求的heap已经在SGA中分配了,则不会在PGA中再次分配heap.Heap是由一个或多个chunk组成的,这些 chunk可以是分散的分布在library cache中的,不需要连续分布。

  如上图三中所看到的heap 0实际上是指heap 0的句柄,其中包含的对象包括:

  1) object type:library cache中的对象类型包括:表、视图、索引、同名词等等。每个对象只能有一个object type,根据object type将对象归类到不同的namespace里。一个object type对应一个namespace,但是一个namespace可能对应多个object type.这样的话,查找一个对象时,只要在该对象所属的namespace中去找就可以了。比较常见的namespace包括:

  a) SQL AREA:也可以叫做CRSR,表示shared cursor,存放共享的SQL语句。

  b) TABLE/PROCEDURE:存放的object type包括:table、view、sequence、synonym、 procedure的定义、function的定义以及package的定义。

  c) BODY:存放procedure的实际代码、function的实际代码以及package的实际代码。

  d) TRIGGER:存放的object type为trigger.

  e) INDEX:存放的object type为index.

  2) object name:对象名称由三部分组成:

  a) Schema的名称,对于共享游标(SQL语句或PL/SQL程序块)来说为空。

  b) 对象名称。分为两种情况:对于共享游标(SQL语句或PL/SQL程序块)来说,其对象名称就是SQL的语句本身;而对于其他对象(比如表、视图、索引等)就是其在数据字典中的名称。

  c) Database link的名称。这是可选的,如果是本地对象,则为空。

  这样,对象的名称的格式为:SCHEMA.NAME@DBLINK.比如,可以为hr.employees@apac.com,也可以为hr.employees等。

  3) flags:flags主要用来描述对象是否已经被锁定。对象具有三种类型的flag:

  a) public flag:表示对象上没有锁定(pin)或者latch.

  b) status flag:表示对象上存在锁定(pin),说明对象正在被创建或删除或修改等。

  c) specitial flag:表示对象上存在library cache latch.

  4) tables:对每个对象,都会维护以下一串tables中的若干个:

  a) dependency table:含有当前对象所依赖的其他对象。比如一个视图可能会依赖其组成的多个表、一个存储过程可能依赖其中所调用的其他存储过程、一个游标可能依赖其中所涉及到的多个表等。Dependency table中的每个条目都指向一块物理内存,该物理内存中含有当前对象所依赖的对象的句柄。

  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.

进入讨论组讨论。
上一页 1 2 3 4 5 6 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章