`
liwenshui322
  • 浏览: 511869 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle内存结构(第二节:手动PGA内存管理)

阅读更多

     上一节已经说过,如果采用专用服务器连接模式,PGA由UGA与另外一部分内存组成。另外的那部分内存主要用来进行排序,位图合并之类的。现在我们就来讲讲oracle如何管理这部分内存的。

      有几个参数:

     sort_area_size:在信息换出到磁盘之前,用于对信息进行排序的内存总量。就是我给你分配多少内存用来进行排序,这是个上限。例如:我给你分配5M,你在最繁忙的时候只需要3M,说明你在最多的时候也只用了3M。并不是说把5M给你之后,就在内存某个地方划了一块%M的空间给你,说这是你的了,别人都不能用!这只是一个标识,说明你不能够越界。那假设你在最繁忙的时候需要10M呢,那怎么办?你还是只能够使用5M,那就要在内存与磁盘之间进行信息交换,会大大影响性能!所以这个参数设置得是否合适,至关重要!

      sort_area_retained_size:排序完成后用于保存已排序数据的内存总量。如果sort_area_size为512KB,sort_area_retained_size为256KB。那么服务器进程最初最多会用512KB对信息进行排序,排序完成之后,排序区会“收缩”到256KB,这256KB内存中放不下的已排序数据会写到临时表空间中。

       操作如下:

       登陆成功之后:1.内存管理机制为手动管理:alter session set workarea_size_policy=manual;

       2.修改排序区大小:alter session set sort_area_size=65336;    就是64KB.

 

参考书籍:oracle9i&10g编程艺术

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics