在阅读了Oracle文档之后,S仍然不清楚是否为每个SQL语句创建了一个Oracle进程,或者仅仅为每个连接创建了一个Oracle进程(或者与两者都没有真正的关联)。
这里的任何评论都是很棒的。
谢谢。
发布于 2012-03-08 09:16:11
每个连接都会创建一个进程,然后该进程可以在连接期间执行SQL语句。
SQL语句在执行过程中可能会使用多个Oracle后台进程(比如并行查询),但这些进程并不是专门针对SQL语句的。
请注意,我忽略了诸如连接池(DRCP)和共享服务器(MTS)之类的东西来保持简单的答案。
发布于 2012-03-08 14:46:17
来自11.2Oracle概念指南的服务器进程概述包含以下信息:
在专用服务器连接中,客户端连接只与一个服务器进程相关联。在Linux上,连接到数据库实例的20个客户端进程由20个服务器进程提供服务。每个客户端进程直接与其服务器进程通信。此服务器进程在会话期间专用于其客户端进程。
发布于 2012-03-09 13:09:12
每当从oracle激发SQL语句时,它只会创建该SQL语句的psedocode,并将其存储在Library缓存(共享SQL区域)中。
这基本上是为了快速检索和重用缓存中的SQL语句而存储的。因此,在触发SQL语句时不会创建任何进程。但就像菲尔说的
SQL语句可以使用多个Oracle后台进程(用于并行查询)。
SQL语句使用后台进程,但不创建它。
此链接可能对您有用。请检查这。
https://dba.stackexchange.com/questions/14625
复制相似问题