zoukankan      html  css  js  c++  java
  • Oracle PGA

    PGA ProgramGlobal Area )程序全局区

    PGA是用户进程连接到数据库并创建一个相应的会话时,由ORACLE为server进程分配的专门用于当前用户会话的内存区,每一个Oracleserver进程都包括有属于自己的PGA,它仅仅存储这个服务进程的相关信息。PGA是私有的而非共享的,当它相应的用户进程死掉后可将server进程及其资源清除和释放。PGA的构成:

    排序区

    用于存放排序操作产生的暂时数据,排序区是影响PGA区大小的主要因素。排序区的大小由初始化參数SORT_AREA_SIZE决定。而SORT_AREA_RETAINED_SIZE參数是决定排序区操作结束后排序区保留的内存大小。

    从排序区释放的内存仍然属于server进程。并不返回给操作系统。

    ORACLE利用内存比磁盘快的事实,将准备排序的数据先暂时存储到排序区中,并在排序区中运行排序操作,然后将排序结果返回给用户。

    排序原理:假设要排序的数据在排序区中放不下,则ORACLE就将数据切割成较小的块放在排序区中,然后对每一小块进行排序。排序产生的暂时数据就先放到暂时表空间的暂时段中。当每一小块都排序完毕之后,再将这些排序完毕的小块合并在一起。产生终于结果。

    会话区

    存储会话所具有的权限、角色、性能统计信息。

    游标状态区

    执行SQL语句或使用游标的语句时,ORACLE会在共享池中为该语句分配上下文区。游标实际是指向该上下文区的指针。

    PGA区中的游标状态区存储的是会话中当前使用的各个游标所处的状态。

    堆栈区

    存储的是会话中的绑定变量、会话变量、SQL语句执行的内存结构等信息。

     

    SGAPGA对照表

     

    SGA

    PGA

    分配时间

    实例启动时

    创建server进程时

    释放时间

    实例关闭时

    server进程结束时

    共享范围

    被一个实例下的全部进程共享

    单个进程专用,不能共享。

     

  • 相关阅读:
    线程的补充
    线程
    进程
    操作系统和进程
    socketserver模块实现并发和连接合法性验证
    socketserver实例化过程
    粘包现象和解决方法
    网络通信协议
    初探网络
    Python网络编程
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6883886.html
Copyright © 2011-2022 走看看