WEB开发网
开发学院数据库Oracle 不让链化现象影响数据库性能 阅读

不让链化现象影响数据库性能

 2009-06-09 13:15:34 来源:WEB开发网   
核心提示:正常情况下往表中新建记录时,数据库系统会将数据写入到块并会像这行记录提供一个ROWID值,不让链化现象影响数据库性能,这个值记录了这条记录在硬盘上存储的位置,在更新某条记录的时候,我们可以利用文本编辑器等工具来打开这个脚本文件,可以看到这个脚本文件主要是用来创建一个表,也是如此,数据库系统会根据ROWID的值将需要更新

正常情况下往表中新建记录时,数据库系统会将数据写入到块并会像这行记录提供一个ROWID值。这个值记录了这条记录在硬盘上存储的位置。在更新某条记录的时候,也是如此。数据库系统会根据ROWID的值将需要更新的记录从硬盘中读取到块中;然后更新完毕后,再将块中的记录保存到硬盘对应的位置。更新过程中,ROWID列的值通常情况下不会改变。

但是如果一个块的容量不能够容纳一条记录。也就是会所,当单个数据块没有足够的空间来保存新建的一行记录或者更新的某行记录时,就会发生链化现象。到一个数据库的容量不足以容纳一条记录时,那么数据库就不得不动用更多的数据块来保存这条记录。在Oracle数据库中,如果某条记录需要利用多个数据库来保存,我们往往把这行记录叫做链化行。而在访问一行记录时,如果需要访问多个数据块,则会比访问单个数据块需要耗费更多的服务器资源,会大大降低数据库性能。我们把这种因为链化行而导致的数据库性能下降的现象叫做链化现象。根据专家统计,严重的话,链化现象可能降低数据库10%的性能,甚至更多。所以数据库管理员如果在数据库部署中,能够有效避免链化现象,那么就可以在很大程度上提升数据库的性能

一、 如何判断是否有链化现象的存在?

那么数据库管理员该如何判断数据库中是否有链化现象的存在呢?如果没有工具,光凭数据库管理员的眼力或者经验的话,是很难判断的。数据库管理员必须找一个顺手的工具。其实Oracle数据库设计这已经预计到这个问题对于数据库性能的不利影响。为此在数据库中已经提供了追踪、分析链化现象的工具。在Oracle数据库安装主目录的/rdbms/admin下有一个脚本文件,名字叫做utlchain.sql。这是Oracle数据库自带的一个脚本文件。我们可以利用文本编辑器等工具来打开这个脚本文件,可以看到这个脚本文件主要是用来创建一个表,用来保存分析脚本现象所需要的内容。

1 2 3  下一页

Tags:不让 现象 影响

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