当客户端运行应用程序时,会启动相应的应用进程,即用户进程;当连接到oracle server时,oracle在服务器端会为用户进程派生一个新的进程,即服务器进程。
用户进程只是发送SQL语句,并且接收SQL语句的返回结果;服务器进程处理应用程序的所有SQL操作。这些操作包括查询操作,处理DML语句,处理COMMIT。
而处理应用程序的所有SQL操作包括三个阶段:解析、执行、提取数据(处理DML语句没有返回值,不需要此阶段)。
解析:由服务器进程检查语法、语义(包括表名和列名等)和权限,最终找到或生成语句的执行计划,并将语句和执行计划装载到库高速缓存中。
执行:服务器进程按照解析计划执行相应语句即可。