WEB开发网
开发学院数据库Oracle Oracle数据库中大型表查询优化研究 阅读

Oracle数据库中大型表查询优化研究

 2007-05-11 12:22:00 来源:WEB开发网   
核心提示: 2.1实例调整首先进行Oracle实例调整,Oracle实例涉及到SGA内存区和一组Oracle后台处理进程,Oracle数据库中大型表查询优化研究(2),对Oracle实例的调整就是对SGA内存区和Oracle后台处理进程的调整,在对该问题的解决中,如表、索引、过程、触发器、软件包等也在

2.1 实例调整

首先进行Oracle实例调整。Oracle实例涉及到SGA内存区和一组Oracle后台处理进程。对Oracle实例的调整就是对SGA内存区和Oracle后台处理进程的调整。在对该问题的解决中,主要是针对SGA内存区的调整。

2.1.1 SGA内存区结构

SGA就是系统全局区,是指内存中允许多个进程相互通信的区域。在Oracle中,SGA对所有进程来说都是全局的可用的。图1为SGA结构图。

缓冲区高速缓存是SGA中为所有用户和系统进程保存数据的区域,任何数据在传递给一个调用的应域是共享的,所以多个进程可以从这片高速缓存读取同样的数据块,而不必每次都从物理磁盘中读取。

共享池是SGA中的另一个区域,其中保存着关于待执行的SQL语句的信息。他由两部分组成:数据字典高速缓存,存放从数据字典中读取的信息以用于处理SQL请求;库高速缓存,存放需要执行的SQL语句信息,包括每个SQL语句的语法分析树和执行计划。如果多个用户要执行同样的SQL语句,那么语法分析树和执行计划就可以重复利用,省去了语法分析步骤的昂贵花费。

2.1.2 调整SGA结构

一般来讲,在系统硬件支持的情况下,系统全局区越大越有利于数据库高效的运行。大的缓冲区高速缓存可以缓存更多的数据块,这样可以提高缓存命中率,节省物理磁盘读取的高昂代价;大的共享池意味着大的库高速缓存。库缓存的内存结构如图2所示。

库缓存越大,可以保存的SQL语法分析信息越多;此外,数据库中的一些对象,如表、索引、过程、触发器、软件包等也在首次执行后进驻库高速缓存。大的库缓存可以保证对这些对象的高命中率,从而节省解析和载入代价。

上一页  1 2 3 4  下一页

Tags:Oracle 数据库 中大型

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接