您的位置:首页 > 数据库 > Oracle

学习《Oracle 9i10g编程艺术》的笔记 (九) 进程

2009-11-27 15:17 274 查看
1.Oracle 实例主要有3 类进程

Oracle 中的各个进程要完成某个特定的任务或一组任务,每个进程都会分配内部内存(PGA 内存)来
完成它的任务。Oracle 实例主要有3 类进程:
服务器进程(server process):这些进程根据客户的请求来完成工作。我们已经对专用服
务器和共享服务器有了一定的了解。它们就是服务器进程。
后台进程(background process):这些进程随数据库而启动,用于完成各种维护任务,如
将块写至磁盘、维护在线重做日志、清理异常中止的进程等。
从属进程(slave process):这些进程类似于后台进程,不过它们要代表后台进程或服务
器进程完成一些额外的工作。

2.Oracle 术语中连接和会话之间的区别

连接(connection)就是客户进程与Oracle 实例之间的一条物理路径(例如,客户与实例之间的一个网络连接)。会话(session)
则不同,这是数据库中的一个逻辑实体,客户进程可以在会话上执行SQL 等。多个独立的会话可
以与一个连接相关联,这些会话甚至可以独立于连接存在。

在一条连接上可以建立0 个、一个或多个会话。各个会话是单独而且独立的,即使它
们共享同一条数据库物理连接也是如此。一个会话中的提交不会影响该连接上的任何其他会话。实际上,
一条连接上的各个会话可以使用不同的用户身份!

连接(connection):连接是从客户到Oracle 实例的一条物理路径。连接可以在网络上建
立,或者通过IPC 机制建立。通常会在客户进程与一个专用服务器或一个调度器之间建立连接。
不过,如果使用Oracle 的连接管理器(Connection Manager ,CMAN),还可以在客户和CMAN
之间以及CMAN 和数据库之间建立连接

会话(session):会话是实例中存在的一个逻辑实体。这就是你的会话状态(session
state),也就是表示特定会话的一组内存中的数据结构。提到“数据库连接”时,大多数人首
先想到的就是“会话”。你要在服务器中的会话上执行SQL、提交事务和运行存储过程。

3.进程任务

专用服务器进程和共享服务器进程的任务是一样的:要处理你提交的所有SQL。当你向数据库提交一
个SELECT * FROM EMP 查询时,会有一个Oracle 专用/共享服务器进程解析这个查询,并把它放在共享池
中(或者最好能发现这个查询已经在共享池中)。这个进程要提出查询计划,如果必要,还要执行这个查询
计划,可能在缓冲区缓存中找到必要的数据,或者将数据从磁盘读入缓冲区缓存中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: