Oracle数据库开发与性能优化.ppt
文本预览下载声明
Oracle基础培训 目录 Oracle基础培训 Oracle基本结构 Oracle数据字典 我们能做到的性能优化 Oracle基本结构-表空间 Oracle基本结构-内存 Oracle基本结构-文件 控制文件 数据文件 日志文件 归档日志文件 参数文件 总体结构 Oracle基本结构-程序 ? Database Writer (DBW0) 负责将数据的更改由database buffer cache写到data files 。 ? Log Writer (LGWR) 负责将数据更改记录由redo log buffer写到redo log files. ? System Monitor (SMON) 检查数据库的一致性,必要的情况下,在数据库打开时执行恢复。 ? Process Monitor (PMON)用户进程失败时,进程监控程序实现进程恢复。 ? The Checkpoint Process (CKPT) 负责更新数据库的控制文件( control files )中的状态信息。在数据缓存永久写入数据库时。 ) 数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。 Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。以下分别就这两类数据字典来论述。 静态数据字典 这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。它们包含了数据库所有对象的定义(表,视图,索引,簇,同义词,序列 ,过程,函数,程序包,触发器,等等) user_*? 该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象) all_* 该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可) dba_* 该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限) 静态数据字典-常用 动态数据字典 Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。 Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。下面就几个主要的动态性能视图进行介绍。 v$access 该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。 动态数据字典-常用 select * from v$session; select * from v$datafile; select * from v$dbfile; select * from v$logfile; select * from v$controlfile; select * from v$system_parameter; select * from v$sqlarea; select * from v$sql_plan; select * from v$sqltext; select * from v$process; select * from v$sysstat; select * from v$session_wait;--v$session_wait select sql_text from v$sqlarea where address in (select sql_address from v$session where paddr in (select addr from v$process where spid = :spid)) statspack 数据库性能设计规范 数据库性能设计规范 1:恰当控制事务大小,commit不要过于频繁 ? 说明 要根据具体业务合理控制事务的大小,在需要提交时才提交事务,不要无目的减小事务; 事务过小,频繁commit会带来以下影响: 程序性能降低,执行时间长,因为需要花费大量时间来等待log file sync事件; 产生的总的redo、undo
显示全部