oracle 0000 normal,successful completion 怎么解决
1共享服务器的代码路径比专用服务器长,所以它天生就比专用服务器慢
2存在人为死锁的可能,因为它是串行的,所有共享服务器绑定在一起(一个进程),只要一个连接阻塞,则所有用户阻塞,并且极可能死锁
3存在独占事务的可能,因为如果一个会话的事务运行时间过长,它独占共享资源,其它用户只能等待(而专用服务器,每个客户端是一个会话)
4共享服务器模式限制了某些数据库特性,例如:
不能单独启动和关闭实例,不能进行介质恢复,不能使用Log Miner,不能使用,并且SQL_TRACE没有意义(因为是共享而不是当前会话的)
session是一个会话,process是一个服务器进程,二者是不同的概念。
oracle中系统process和session的联系:
在SharedServer中的Process 和Oracle 中的Session不是一一对应的,Shared Server中的Process 一个对应着Oracle 中的一个或者一个以上的Session。在dedicated server机器上试验证明:数据库的session和操作系统process是对应的
即表示一个session对应一个process,但是一个process未必对应一个session。
oracle内存结构分为:
一:系统全局区 (SGA)
二:程序全局区 (PGA)
其中
SGA分为:
dagtabase buffer cache数据库缓冲区高速缓存:用于缓存从磁盘检索到的数据块
redo log buffer cache重做日志缓冲区:用于缓存重做信息,直到其可以写入磁盘为止
shared pool共享池:用于缓存可在用户间共享的各种结构
large pool大型池:用于缓冲大型 I/O 请求的可选区域,以便支持并行查询、共享服务器、Oracle XA 以及某些类型的备份操作
Java 池:用于存放 Java 虚拟机 (JVM) 中特定于会话的 Java 代码和数据
streams pool流池:由 Oracle Streams 使用
保留缓冲区高速缓存:用于存放会尽可能长地保留在缓冲区高速缓存中的数据
循环缓冲区高速缓存:用于存放缓冲区高速缓存中很快过期的数据
nK 块大小缓冲区高速缓存:用于缓存大小与默认数据库块大小不同的数据块,用来支持可传输的表空间。
PGA分为:
程序全局区 (PGA) 是一个内存区,其中包含每个服务器进程的数据及控制信息。服务器进程是处理客户机请求的进程。每个服务器进程都有在服务器进程启动时创建的自己专用的 PGA。只有该服务器进程才能访问。
所用 PGA 内存量和 PGA 的内容取决于实例是否是在共享服务器模式下配置的。通常,PGA 包含下列内容:
专用 SQL 区:包含绑定信息和运行时内存结构等数据。发出 SQL 语句的每个会话都有一个专用 SQL 区。
会话内存:此处分配的内存用于存放会话变量以及与该会话相关的其它信息。
http://www2ctocom/database/201410/344338html
0条评论