oracle必须的五大进程:
1、server process 服务器进程
【以客户端执行一条sql为例说明】:
1、sql语句通过网络到达实例、server process 接收sql语句
2、server process 去shard pool找sql和执行计划 若没有则硬解析解析sql
3、server process 根据执行计划去buffer cache(缓存dbf的数据)找相关的数据(逻辑读),
如没有找到则到dbf文件中取出数据(物理读)放到buffer chache 再返给用户。
4、若需要修改数据,server process 读出数据到buffer cache中,在内存中修改数据,修改完返给用户。
server process始终为用户服务,故:server process处理的快慢直接影响用户体验的快慢。
server process什么时候会大量的使用到pga分配的内存空间?
1)排序
sort order by
group by
union
2)hash join
server process进行排序或者hash的时候,如果所需要的pga内存不足
server process就会把一部分数据写入到temp表空间,产生物理io
性能会很差(大部分结果是性能非常差)
查看进程
select * from v$process;
查看临时文件使用情况,以确认PGA是否出现过问题
select * from v$tempstat;(可查看临时表物理IO情况)
select * from v$tempfile;
select * from v$sql_workarea_active;
根据sql_id查看SQL语句
select t.SQL_FULLTEXT from v$sql t where sql_id='23p6x4thkyfsz'
2、PMON Servr process进程监视器
1.清理与实例非法断开的server procese残留的资源,非正常终止的用户进程产生的垃圾资源
2.负责重启以外死掉的调度器(网络监听中使用的)
3.将实例的信息注册到监听程序