oracle数据库中临时数据的处理方法
通常情况下,Oracle数据库存储这些临时数据在PGA(程序全局区)的记忆。在程序全局区,有一个叫做排序区的地方,这是专门用来存储临时数据的排序操作产生的。但是,这个分区的容量是有限的,当分区的大小不足以容纳的排序产生的记录,数据库系统存储临时数据的临时表空间。这是临时表空间的根源,好像临时表空间是一个临时工,不具有对数据库的影响。事实上,这是临时表空间的一个误解。在用户的数据库操作,排序,INg和索引是最重要的任务,这将产生大量的临时数据,基本上每个数据库需要使用临时表空间。如果没有设置临时表空间,它将对数据库的性能有很大的负面影响。为此,在这临时表空间的维护管理员,不可掉以轻心。避免临时表空间设置不当会影响数据库的性能。尤其是要注意以下几个方面的重要。
首先,创建一个用户为用户创建临时表空间。
最好是为用户指定一个临时表空间,当用户创建的。如果你可以使用声明默认的临时表空间语句对数据库的默认临时表空间。但这不是强制性的在Oracle数据库中,但我强烈建议,因为如果你不指定默认临时表空间,那么当用户因为排序操作需要一个临时表空间的使用,数据库系统将使用花哨的系统表空间系统创建临时段。我们都知道,这是一个系统表空间。由于对这一系统表空间运行的相关数据,一般建议该用户的数据不能存储在这个表空间。所以我们应该是一个负面影响,如果用户的临时表空间是防止在系统表空间
在临时表空间的数据是暂时的。因此,数据库系统需要频繁分配和释放临时段。这些频繁的操作会产生大量的系统表空间存储碎片。当这些存储碎片较多,会影响系统的效率来读取硬盘而影响数据库的性能。其次,对系统表空间的大小往往是有限的。临时段的脚,它将系统表空间的大小。
因此,数据库管理员需要意识到,当用户没有指定临时表空间、用户分类,如用户排序,仍然需要使用临时段。此时,数据库系统将临时段为系统表空间。这将有数据库的性能产生不利影响。因此,我建议读者和数据库管理员指定用户的默认表空间创建用户时,以减少系统空间的占用。
两。合理设置PGA以减少临时表空间的使用概率。
总之,如果临时段是经常使用的,数据库的性能会因为内存与硬盘之间的性能差异减少。因此,在日常工作中,数据库管理员也需要监控临时表空间的使用来确定是否需要采取措施来减少临时表空间运用提高数据库的查询性能。为了达到这个目的,笔者建议数据库管理员可以查看这个V sort_segment.through美元这一动态性能视图动态性能视图,你可以看到系统分类部分的使用(一个临时段)。此外,动态性能视图V $ sort_usage还可以查询用户和SES排序段的融合信息,数据库管理员对数据库性能优化提供数据支持,这一部分,我要说明一点,排序部分,所有SQL语句的程序,如果有必要,共享相同的排序段,排序部分,当它第一次需要使用创建。排序部分不会排序后完成发布,和排序的部分才是封闭的释放过程。为此,上述两种观点加以综合分析得到数据库管理员想要的信息。
三,为临时表空间保留足够的硬盘空间。
其他其他表空间对应的数据文件完全分配和初始化时创建的,即存储空间将被分配当他们创建的。但临时表空间对应不同的临时文件。例如,在Linux操作系统中,临时表空间创建时,系统不分配初始化临时文件。也就是说,它将不分配临时文件的存储空间。只有当临时数据需要使用临时文件系统分配一块放在硬盘上保存临时文件。在这一点上,可能会出现问题,即当临时文件系统分配的空间,将不会有足够的存储空间在系统分区中,此时会产生一些不可预知的后果。
对于这些临时文件,数据库管理员能够更好地储备足够的空间供它提前。例如,在Linux操作系统上,它可以防止在一个单独的分区,不允许被其他应用程序使用。在这种情况下,你不必担心没有地方用来存储临时文件。此外,临时表空间主要是用来存放一些临时文件。因此,如果我们能够存储临时表空间的分区,具有更好的性能,还可以提高数据库系统的速度在临时表空间中读取数据。此外,由于系统需要配置数据的临时表空间通常会有一个我在分区中的临时表空间位于碎片OT。如果临时表空间存储在一个单独的分区中,数据库管理员可以对分区进行,从而提高分区的性能。所以,不管出于什么原因,这是一个好主意,防止临时表空间在一个独立的分区,它不仅能保证临时文件的存储空间,而且还提高了数据库的性能。
对于临时表空间的结束,默认情况下此临时表空间默认为每个用户共享,也就是说,连接到数据库的每个用户都可以使用默认的临时表空间。数据库管理员可以指定其他临时表空间。
当排序操作所产生的临时数据,数据库不存储在一个临时表空间立即。通常情况下,这些临时数据存储在内存中的PGA程序全局区。仅当程序的整个区域都是无法容纳所有的数据,数据库系统将启用临时段中临时表空间来保存数据,但众所周知,读取操作系统数据从存储器的数千倍从硬盘上的数据块。理想情况下,该程序是大到足以容纳所有的临时数据。在这一点上,数据库系统将永远无法使用的临时表空间。它可以提高数据库的性能。
但这只是一种理想的毕竟。由于内存大小的许多方面,这种可编程区域的大小通常是有限的。因此,临时表空间还很小,当你做一些大的排序操作。现在,数据库管理员可以做的就是合理设置PGA程序全局区的大小尽量减少使用临时表空间的概率。在实际工作中,数据库管理员可以根据需要设置初始化参数sort_area_size参数,这个参数主要控制在全球范围的PGA程序的大小,通常情况下,如果数据库系统主要用于查询和需要大量的排序、分组、索引等操作,此参数可调整ppropriately扩大PGA分区的大小。相反,如果系统主要用于更新操作,或其他应用程序部署在数据库服务器、PGA分区可以不占用太多的内存来防止其他应用程序产生不利影响。因此,数据库的官员不可削减的一个尺寸需要根据实际情况进行调整。如果有必要,我们可以增加系统内存提高PGA分区的大小,以减少临时表空间的使用率,从而提高数据库的排序性能,分组汇总。