在本章里你可以了解以下内容
1、 oracle 实例——包括内存结构与后台进程
3、 了解内存结构的组成
4、 了解后台进程的作用
5、 了解数据库的物理文件
6、 解释各种逻辑结构
一、oracle实例
1、oracle 实例
system global area(sga) 和 background process 称为数据库的实例。
一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)
3、系统全局共享区system global area(sga)
system global area 是一块巨大的共享内存区域,他被看做是oracle 数据库的一个大缓冲池,这里的数据可以被oracle的各个进程共用。其大小可以通过如下语句查看:
|
主要包括以下几个部分:
a、 共享池(shared pool)
共享池是sga中最关键的内存片段,特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能,使系统停止,太大的共享池也会有同样的效果,将会消耗大量的cpu来管理这个共享池。不正确的使用共享池只会带来灾难。共享池主要又可以分为以下两个部分:
sql语句缓冲(library cache)
当一个用户提交一个sql语句,oracle会将这句sql进行分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个sql,oracle会把他的分析结果给保存在shared pool的library cache中,当数据库第二次执行该sql时,oracle自动跳过这个分析过程,从而减少了系统运行的时间。这也是为什么第一次运行的sql 比第二次运行的sql要慢一点的原因。
下面举例说明parse的时间
|
从两句sql 的时间差上可以看出该sql 的parse 时间约为00:00:00.02.
对于保存在共享池中的sql语句,可以从v$sqltext、v$sqlarea中查询到,对于编程者来说,要尽量提高语句的重用率,减少语句的分析时间。一个设计的差的应用程序可以毁掉整个数据库的share pool,提高sql语句的重用率必须先养成良好的变成习惯,尽量使用bind变量。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器