还剩4页未读,继续阅读
文本内容:
不要让临时表空间影响Oracle数据库性能数据库教程电脑资料在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据,通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA程序全局区内在这个程序全局区中有一个叫做排序区的地方,专门用来存放这些因为排序操作而产生的临时数据但是这个分区的容量是有限的当这个分区的大小不足以容纳排序后所产生的记录时,数据库系统就会将临时数据存放到临时表空间中这就是临时表空间的来历看起来好像这个临时表空间是个临时工,对于数据库__不会有多大其实大家这是误解这个临时表空间了在用户进行数据库操作时,排序、分组汇总、索引这些作业是少不了,其会产生大量的临时数据为此基本上每个数据库都需要用到临时表空间而如果这个临时表空间设置不当的话,则会给数据库性能带来很大的负面影响为此管理员在维护这个临时表空间的时候,不能够掉以轻心要避免因为临时表空间设置不当影响数据库的性能具体来说,主要需要注意如下几个方面的内容
一、创建用户时要记得为用户创建临时表空间最好在创建用户时为用户指定临时表空间如可以利用语句defaulttemporarytablespace语句来为数据库设置默认的临时表空间不过在Oracle数据库中这个不是强制的但是笔者强烈建议这么做因为如果没有为用户指定默认临时表空间的话,那么当这个用户因为排序等操作需要使用到临时表空间的话,数据库系统就会“自作聪明”的利用系统表空间SYSTEM来创建临时段众所周知,这是一个系统表空间由于在这个表空间中存放着系统运行相关的数据,一般的建议是用户的数据不能够保存在这个表空间中那么如果将用户的临时表空间防止在这个系统表空间之内,会产生什么负面影响呢由于临时表空间中的数据是临时的为此数据库系统需要频繁的分配和释放临时段这些频繁的操作会在系统表空间中产生大量的存储碎片当这些存储碎片比较多时,就会影响系统读取硬盘的效率,从而影响数据库的性能其次系统表空间的大小往往是有限制的此时临时段也来插一脚,就会占用系统表空间的大小为此数据库管理员需要注意一点,当没有为用户指定临时表空间时,用户排序等操作仍然需要用到临时段此时数据库系统就会将临时段放入到系统表空间中为此就会对数据库的性能产生不利__所以笔者建议各位读者...。