| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
2-1-2:日志缓冲区(Log Buffer Cache)
日志缓冲区用来存储数据库的修改信息。该区对数据库性能的影响很小,有关日
志后面还会有详细的介绍。
查询日志缓冲区大小:
SQL> show parameter log_buffer
NAME TYPE VALUE
---------- ----------- -------
log_buffer integer 262144
2-1-3:共享池(Share Pool)
共享池是对SQL,PL/SQL程序进行语法分析,编译,执行的内存区域。
它包含三个部分:(都不可单独定义大小,必须通过share pool间接定义)。
•库缓冲区(Library Cache)包含SQL,PL/SQL语句的分析码,执行计划。
•数据字典缓冲区(Data Dictionary Cache)表,列定义,权限。
•用户全局区(Usr Global Area)用户MTS会话信息。
共享池的大小可以动态修改:
======================================
SQL> show parameter shared_pool_size
NAME TYPE VALUE
------------------------------------ ----------- ------ 网管朋友网www_bitscn_net
__shared_pool_size big integer 80M
shared_pool_size big integer 80M
SQL> alter system set shared_pool_size=78m
System altered.
======================================
#上面的__shared_pool_size一行奇怪? 网管朋友网www_bitscn_net
2-2:程序全局区PGA(Programe Global Area)
程序全局区是包含单个用户或服务器数据和控制信息的内存区域,它是在用户进程连
接到Oracle并创建一个会话时由Oracle自动分配的,不可共享,主要用于用户在编程存
储变量和数组。
网管u家www.bitscn.net
如上图:
•Stack Space是用来存储用户会话变量和数组的存储区域;
•User Session Data是为用户会话使用的附加存储区。
|--Session Information
|--Sort Area
|--Cursor Information
注意Session information(用户会话信息)在独占服务器中与在共享服务器中所处
的内存区域是不同的。
中国网管联盟bitsCN.com
2-3:排序区,大池,Java池
排序区(Sort Area)为有排序要求的SQL语句提供内存空间。系统使用专用的内存区
域进行数据排序,这部分空间就是排序区。在Oracle数据库中,用户数据的排序可使用
两个区域,一个是内存排序区,一个是磁盘临时段,系统优先使用内存排序区进行排序。
如果内存不够,Orcle自动使用磁盘临时表空间进行排序。为提高数据排序的速度,建议
尽量使用内存排序区,而不要使用临时段。
参数sort_area_size用来设置排序区大小。(好象不能动态修改?)
中国网管联盟bitsCN.com
大池(Large Pool)用于数据库备份工具--恢复管理器(RMAN:Recovery Manager)。
Large Pool的大小由large_pool_size确定,可用下面语句查询和修改:
=========================================
SQL> show parameter large_pool_size
NAME TYPE VALUE
----------------- ----------- -------
large_pool_size big integer 8M
网管联盟bitsCN_com
SQL> alter system set large_pool_size=7m;
System altered.
=========================================
Java池主要用于Java语言开发,一般来说不低于20M。其大小由java_pool_size来
确定,可以动态调整。 网管下载dl.bitscn.com
2-4:Oracle自动共享内存管理(Automatic Shared Memory(SGA) Management)
在Oracle 8i/9i中数据库管理员必须手动调整SGA各区的各个参数取值,每个区要根据
负荷轻重分别设置,如果设置不当,比如当某个区负荷增大时,没有调整该区内存大小,则
可能出现ORA-4031:unable to allocate ...bytes of shared memory错误。
在Oracle 10g中,将参数STATISTICS_LEVEL设置为TYPICAL/ALL,使用SGA_TARGET指
定SGA区总大小,数据库会根据需要在各个组件之间自动分配内存大小。
下面是系统自动调整的区域:
•固定SGA区及其他•共享池•数据缓冲区• Java池•大池。
注意:如果不设置SGA_TARGET,则自动共享内存管理功能被禁止。
==========================================
SQL> show parameter statistics_level
NAME TYPE VALUE
--------------------- ----------- ------------ 网管论坛bbs_bitsCN_com
statistics_level string TYPICAL
SQL> alter system set statistics_level=all;
System altered.
网管朋友网www_bitscn_net
#typical和all有什么区别?
SQL> alter system set statistics_level=typical;
System altered. 网管u家bitscn.net
SQL> show parameter sga_target
NAME TYPE VALUE
------------- ----------- ----------
sga_target big integer 0
网管网www.bitscn.com
SQL> alter system set sga_target=170m;
alter system set sga_target=170m
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00823: Specified value of sga_target greater than sga_max_size 网管联盟bitsCN@com
SQL> alter system set sga_target=20m;
System altered. 网管联盟bitsCN_com
#不过后来又发现sga_target的值变成了140M? 下面是语句执行情况。
SQL> show parameter sga_target
NAME TYPE VALUE
------------- ----------- -------
sga_target big integer 140M
SQL> alter system set sga_target=0;
System altered. 网管下载dl.bitscn.com
SQL> show parameter sga_target
NAME TYPE VALUE
------------------------------------ ----------- ------
sga_target big integer 0 中国网管论坛bbs.bitsCN.com
#改为20M
SQL> alter system set sga_target=20m;
System altered. 网管u家www.bitscn.net
#显示的是140M
SQL> show parameter sga_target
NAME TYPE VALUE
------------------------------------ ----------- ------
sga_target big integer 140M
#不可缩减?
SQL> alter system set sga_target=130m;
alter system set sga_target=130m
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00827: could not shrink sga_target to specified value
#不可增加
SQL> alter system set sga_target=141m;
alter system set sga_target=141m
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00823: Specified value of sga_target greater than sga_max_size
3:Oracle实例的进程结构(Process Structure)
Oracle包含三类进程:
•用户进程(User Process)
•服务器进程(Server Process)
•后台进程(Background Process)
3-1:用户进程和服务器进程
当数据库用户请求连接到Oracle的服务时启动用户进程(比如启动SQLPlus时)。
网管网www.bitscn.com
网管u家bitscn.net
|
4
|
评论加载中…