Oracle数据库段管理有技巧(二)

数据库 Oracle
oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。功能性很强,本文将为大家带来Oracle数据库段管理有技巧。

之前已经为大家介绍了两点Oracle数据库段管理有技巧,即Oracle数据库段管理有技巧(一),接下来就为大家介绍更多的技巧。

技巧三:减少临时段的使用

  临时段主要用来存储排序等操作所产生的临时数据。如现在某张数据表中,有A、C、B、F、E、D等记录。此时,若用Order By子句对其进行排序,数据库系统就会返回A、B、C、D、E、F数据。这些被重新排序过的数据,就叫做临时数据。通常情况下,这些临时数据会存放在两个地方,分别为PGA工作区与临时段中。默认情况下,这些临时数据会先存储在PAG工作区。如果因为临时数据比较大,PGA工作区已经满了的情况下,数据库会把剩下的临时数据存放到临时段中。

  从理论上讲,无论是把数据存放在PGA工作区还是存储在临时段中,对于用户的最终结果没有影响。但是,如果从数据库性能方面考虑,则两者就有比较大的差异。

  PGA工作区,又叫做程序全局区域,它是包含服务器进程的数据和控制信息的非共享内存区域。通常情况下,只要数据库服务器进程启动,则Oracle就会在内存中创建程序全局区域。在10G以后的版本中,Oracle数据库能够自动根据内存的使用情况来管理程序全局区域,而不用数据库管理员去手工的干预,从而使得PGA工作区的使用率更高。所以,一般来说,把临时数据存放在PGA工作区,其效率更高。

  在实际工作中,数据库管理员应该尽量避免产生大量的临时数据,或者说,尽量不让临时数据超过PGA工作区所能够承受的***容量。从而数据库不得不把临时数据存放到临时段中。

  在实际工作中,很多Select语句都会产生临时数据。如在Select语句中,若加入Order By、Group By等子句,都会导致数据库对数据文件中的记录进行重新组织,从而产生大量的临时数据。为此,在应用程序设计中,就***能够加入一些默认的查询限制条件,从而避免产生大量的临时数据。如在销售表查询的时候,如果用户没有输入具体的查询条件,则应用程序默认只查询近30天的销售记录,并按交易的日期或者产品进行排序。如果这些记录不能够满足用户的需求,再进行全部记录的查询。如此设计的话,就可以在一定程度上减少临时数据,减少临时段使用的频率。因为根据相关统计,用户在查询的时候,往往不会主动加入查询条件。而他们所需要的数据,往往都是最近一些的交易记录。为此,在应用程序设计过程中,加入一些默认的查询条件是非常有必要的。

技巧四:LOB段***独立与普通表

  在Oracle数据库中,除了可以存放一些字符、数字等基本数据类型外,还可以存储附件、图像、音频、视频文件等等。用来存放这些数据的段,就叫做LOB段。当数据库在创建这些特殊类型的列时,Oracle数据库系统就会自动为他们建立对应的LOB段。通常情况下,如果这些特殊数据类型的长度比4000字节要少,则这一列与其他普通列的数据会一起存放在表段中,如果数据长度超过了4000字节,则数据库就会被存放在LOB段中。

  如果从数据库性能方面考虑,***能够把这些特殊的数据类型跟其他数据类型分别存放。如现在有一张产品信息表,需要包含产品ID、产品名称、产品规格、产品图像等内容。那么,在数据库设计的时候,***能够建立两张表,一张用来存储产品ID、产品名称、产品规格等信息;另一张表中存储产品ID、产品图像等信息。如此设计,主要是出于两个方面的考虑。

  一是在实际工作中,并不是每次查看产品信息时,都需要产品图像的内容。如在生成订单时,没有必要再每次下单时都显示产品图片。因为对于一些老产品来说,这个产品图像早就印在用户脑海中。即使系统显示图片信息,用户也不会去关注。

  二是这会影响数据库的查询性能。众所周知,数据库查询效率跟数据容量有很大的关系。数据容量越大,其查询的效率越低。而LOB段中存储的数据往往都是一些大容量的数据。所以在用户不需要的情况下,显示图像等信息,就会大大降低数据库的性能。再说,在一些应用程序中,由于网速或者刷新率等原因,其显示图像信息本身就要比显示文字信息来的慢。这就更加延长了用户的等待时间。

  所以,LOB段的数据类型***能够跟表中的其他字段分开来管理。在数据库设计的时候,就可以把他们存放在独立的表中,然后通过关键字进行关联。

掌握了这些技巧就会给我们以后的工作带来很大的方便,而且快速,提高了工作效率,但是这些技巧要灵活掌握,不要生搬硬套。

【编辑推荐】

  1. Oracle数据库提高命中率及相关优化
  2. 深刻理解Oracle数据库的启动和关闭
  3. 高效删除Oracle数据库中重复数据的方法
责任编辑:迎迎 来源: IT专家网
相关推荐

2011-03-17 16:19:42

Oracle数据库管理

2010-04-21 11:43:33

Oracle数据库

2010-11-15 11:49:18

Oracle数据库的段

2011-07-29 16:21:21

Oracle数据库回滚段

2009-03-03 11:41:14

数据库表表分区

2010-03-18 09:28:14

Oracle数据库迁移

2010-04-06 11:19:28

Oracle数据库

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2011-03-03 13:17:43

Oracle数据库

2009-03-16 13:30:55

脚本数据字典Oracle

2010-04-23 12:24:06

Oracle数据库

2009-05-18 13:18:54

字符Oracle字符串

2011-03-01 16:30:55

Oracle

2011-03-17 14:09:25

Oracle数据库字符

2011-03-11 16:25:53

Oracle数据库

2011-04-11 16:50:13

Oracle数据库索引

2017-10-18 19:12:24

数据库Oracle安全管理

2020-08-03 11:52:31

Oracle数据库

2010-04-22 16:56:46

Oracle数据库

2010-04-21 11:53:03

Oracle数据库
点赞
收藏

51CTO技术栈公众号