来着TOM的<oracle 编程艺术 9i,10g,11g> PMON PMON,进程监视.PMON主要有3个用途: 1,在进程非正常中断后,做清理工作.例如:dedicated server失败了或者因为一些原因被杀死,这是PMON的工作分两种.第一,是对dedicated server所做的工作进行恢复或撤销.第二:是释放dedicated server占用的资源.PMON会把失败进程的未提交的工作进行rollback,释放锁,释放SGA空间 2,在进程abort后,PMON进行清理工作.…
执行一个SQL语句 执行查询语句的过程: 用户进程执行一个查询语句如select * from emp where empno=7839 用户进程和服务器进程建立连接,把改用户进程的信息存储到PGA的UGA中 语句经过PGA处理后传递给实例instance 实例instance中的共享池处理这条语句 库缓冲区去判断语句如何分析--软分析(快)或硬分析(慢) 根据cbo得到执行计划,准备去执行语句.(CBO和RBO是ORACLE提供的两种优化器) 查询语句中的对象(emp表和行)存放在那个表空间,…
关于oracle用户进程,服务进程,后台进程 用户进程(User Process) 是一个需要与Oracle Server交互的程序 运行于客户端 当用户运行某个工具或应用程序(如SQL*Plus)时创建,当用户退出上述程序时结束 用户进程向Oracle Server发出调用,但它并不与Oracle Server直接交互,而是通过Server Process与Oracle Server进行交互. --------------------------------------------------…
转载自:刘相兵 Maclean Liu 文章 你所不知道的后台进程 SMON 功能   SMON(system monitor process)系统监控后台进程,有时候也被叫做 system cleanup process, 这么叫的原因是它负责完成很多清理(cleanup)任务.但凡学习过 Oracle 基础知识的技术人员 都会或多或少对该 background process 的功能有所了解. 我们所熟知的 SMON 是个兢兢业业的家伙,它负责完成一些列系统级别的任务.与 PMON(Proc…
Oracle体系结构之进程 一.概述 Oracle中的每个进程都要执行一个特定的任务(或者一组任务),每个进程都会为自己分配内存(PGA)来完成它的任务.一个Oracle实例主要有以下3类进程: (1) 服务器进程(server process):服务器进程包括专用服务器和共享服务器,用来处理你提交所有SQL.当你向数据库提交一个SELECT * FROM EMP查询时,就会有一个ORACLE专用/共享服务器进程来解析这个查询,把它放到共享池中(或者最好能发现这个查询已经在共享池中).这个进程要…
原文地址:https://www.toutiao.com/i6500477672349499917/ 一. Process Structure进程结构 Oracle有两种类型的进程: 服务器进程和后台进程(server processes and background processes). 1.服务器进程 Oracle 服务器进程是处理用户与实例连接的事务. 任务是: (1)分析和执行应用所发出的SQL语句. (2)从数据文件读必要的数据到SGA区的共享数据区. (3)返回必要信息给应用. 2…
Oracle 服务器主要又实例.数据库.程序全局区和前台进程组成. 实例可以进一步划分为系统全局区(SGA)和后台进程(PMON.SMON等)两部分,其中,SGA 使用操作系统的内存资源,而后台进程需要使用 CPU 与内存资源.数据库(Database)中包含数据文件(Data files).控制文件(Control files)和重做日志文件(Redo log file),数据库文件存放在硬盘中.程序全局区(PGA)是一个非共享的内存区域,用于管理用户进程的私有资源.前台进程可以再划分为用户进…
Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ~]$ ps -ef | grep tnslsnr oracle    1999 29986  0 09:47 pts/2    00:00:00 grep tnslsnr oracle    3647     1  0 Jul03 ?        00:00:34 /u01/oracle/mc…
下面我们要讲ORACLE服务器进程如何处理用户进程的请求,当一个用户进程发出了一条SQL语名:   UPDATE TABBLEA SET SALARY=SALARY*2:   首先,服务器进程把这条语句的字符转换成ASCII等效数字码,接着这个ASCII码被传递给一个HASH函数,并返回一个HASH值,服务器进程将到SHARED POOL 的共享PL/SQL区去查找是否存在同样的HASH值,如果存在,服务器进程将使用这条语句已高速缓存在SHARED POOL中的已分析过的版本来执行,如果不存在,…
Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ~]$ ps -ef | grep tnslsnr oracle    1999 29986  0 09:47 pts/2    00:00:00 grep tnslsnr oracle    3647     1  0 Jul03 ?        00:00:34 /u01/oracle/mc…