《数据厍设计与开发》讲义 4.3.1.1管理 ORACLE数据库对象 管理临时表空间和段 临时段是 SELECT语句在需要的时候向 TORACLE申请的 存储资源,随 SELECT语句结束而注销。只有查询的直 接结果与查询的显示结果有差异时才会申请临时段, 保存中间结果,比如 DISTINCT、 ORDER BY等。 在缺省情况下,临时段创建在系统表空间中,而临 时段频繁的创建和删除势必造成系统表空间的效率降 低,还会使系统表空间中的‘碎片’增加,影响存储 器的有效使用。 应该设计一个专门的表空间来存放临时段,最好将 其分配在与系统表空间和数据段不同的存储器上,减 少I/0冲突。在创建用户时,应同时为其指定临时段所 使用的表空间。临时段表空间最起码的容积应有两倍 的单个数据表信息量,还要考虑用户数 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.1 管理ORACLE数据库对象 –管理临时表空间和段 临时段是SELECT语句在需要的时候向ORACLE申请的 存储资源,随SELECT语句结束而注销。只有查询的直 接结果与查询的显示结果有差异时才会申请临时段, 保存中间结果,比如DISTINCT、ORDER BY等。 在缺省情况下,临时段创建在系统表空间中,而临 时段频繁的创建和删除势必造成系统表空间的效率降 低,还会使系统表空间中的‘碎片’增加,影响存储 器的有效使用。 应该设计一个专门的表空间来存放临时段,最好将 其分配在与系统表空间和数据段不同的存储器上,减 少I/O冲突。在创建用户时,应同时为其指定临时段所 使用的表空间。临时段表空间最起码的容积应有两倍 的单个数据表信息量,还要考虑用户数
《数据厍设计与开发》讲义 43.1.2 ORACLE数据库碎片 DBA面对的最常见问题就是处理数据库对象的 碎片。碎片浪费空间,导致性能问题,并给数 据库对象的管理带来困难。数据库碎片通常是 行被插入、修改和删除以及对象被建立和删除 的结果,一个新建立的数据库不会有碎片。只 有当在数据库上运行了一个或更多活动应用 程序后,才开始看到数据库碎片的迹象。 数据库碎片包括分裂成碎片的数据库对象,分 裂成碎片的表空间、链接行和转移行。DBA应 该,注意数据库应用程序是如何执行任务的, 尽量避免数据库应用程序运行过程中产生碎片, 并且监测数据库运行状态,对产生的碎片进行 必要的处理 北京邮电次学软优貌 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.2 ORACLE数据库碎片 • DBA面对的最常见问题就是处理数据库对象的 碎片。碎片浪费空间,导致性能问题,并给数 据库对象的管理带来困难。数据库碎片通常是 行被插入、修改和删除以及对象被建立和删除 的结果,一个新建立的数据库不会有碎片。只 有当在数据库上运行了一个或更多的活动应用 程序后,才开始看到数据库碎片的迹象。 • 数据库碎片包括分裂成碎片的数据库对象,分 裂成碎片的表空间、链接行和转移行。DBA应 该,注意数据库应用程序是如何执行任务的, 尽量避免数据库应用程序运行过程中产生碎片, 并且监测数据库运行状态,对产生的碎片进行 必要的处理
《数据厍设计与开发》讲义 4.3.1.2 ORACLE数据库碎片 分裂成了碎片的表空间 表空间变成碎片是由于运行错误或者表空间中的数 据库对象的无计划撤消和重建造成的。表空间不会由 于任何行级动作而变成碎片。 Oracle尽力帮助DBA进行空间分配和管理。例如假 定一开始表空间有四个1OAB表段,现在删除其中的两 个表,这两个表都位于表空间的“中间”位置,SMON 后台进程自动地把两个10MB的区间聚合为一个20B区 间。如果要删除的两个表不是位于表空间的“中间” 位置,则形成表空间碎片。 表空间碎片会导致:表空间中的空间被分离且不能 有效地使用。 DBA FREE SPACE和 DBA EXTENTS数据字典可以查询 数据库的每个表空间中有多少自由空间是可用的和最 大自由区间的容量以及每个表空间中自由区间的数目 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.2 ORACLE数据库碎片 –分裂成了碎片的表空间 表空间变成碎片是由于运行错误或者表空间中的数 据库对象的无计划撤消和重建造成的。表空间不会由 于任何行级动作而变成碎片。 Oracle尽力帮助DBA进行空间分配和管理。例如假 定一开始表空间有四个10MB表段,现在删除其中的两 个表,这两个表都位于表空间的“中间”位置,SMON 后台进程自动地把两个10MB的区间聚合为一个20MB区 间。如果要删除的两个表不是位于表空间的“中间” 位置,则形成表空间碎片。 表空间碎片会导致:表空间中的空间被分离且不能 有效地使用。 DBA_FREE_SPACE和DBA_EXTENTS数据字典可以查询 数据库的每个表空间中有多少自由空间是可用的和最 大自由区间的容量以及每个表空间中自由区间的数目
《数据厍设计与开发》讲义 43.1.2 ORACLE数据库碎片 处理分裂成碎片的表空间 处理表空间碎片的最好方法是避免它,这需要仔细 地计划和管理。避免碎片的几种提示方法: 1)把对象用相似的空间和增长特性聚合在一起, 2)如果可能,把它们的区间设成相同的容量,这样 所有的对象可以共享释放对象回收的区间 3)使每个段的 PCTINCREASE保持为0(注意 Oracle7.3 后,设置 PCTINCREASE比0大会导致SMON自动聚合相邻 的自由区域)。 对确实需要整理的分裂成碎片的表空间,简单的方 法是在表空间中导出损坏了的对象,删除该对象,再 把它们导入回来。这不仅能够聚合自由空间,而且导 出操作也可以把数据库对象聚合到一个区域中 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.2 ORACLE数据库碎片 –处理分裂成碎片的表空间 处理表空间碎片的最好方法是避免它,这需要仔细 地计划和管理。避免碎片的几种提示方法: 1)把对象用相似的空间和增长特性聚合在一起。 2)如果可能,把它们的区间设成相同的容量,这样 所有的对象可以共享释放对象回收的区间。 3)使每个段的PCTINCREASE保持为0(注意Oracle7.3 后,设置PCTINCREASE比0大会导致SMON自动聚合相邻 的自由区域)。 对确实需要整理的分裂成碎片的表空间,简单的方 法是在表空间中导出损坏了的对象,删除该对象,再 把它们导入回来。这不仅能够聚合自由空间,而且导 出操作也可以把数据库对象聚合到一个区域中
《数据厍设计与开发》讲义 43.1.2 ORACLE数据库碎片 对象碎片 碎片问题可能发生在对象级。对象碎片会导致:由 于在表和索引块中的自由空间空洞导致空间的浪费 读性能下降,因为数据不再被紧紧地排在一起,物理 磁盘驱动器必需从一个比需要的大的磁盘表面区域中 搜寻和读数据 对象碎片的三个特殊碎片类型:行转移、行链接和 过分扩展的段。 DELETE操作可能会产生稀疏的块,因为这些块不满 足 PCTUSED条件,以至没有成为自由空间。处理对象 碎片的操作也会处理这类稀疏的块问题。 DBA在一个经常改变的表空间中发现空间分配问题, 并重建了表空间和它的所有对象,随后数据库性能提 高了。这种在性能上的提高是消除表空间碎片的结果 但也可能是消除对象级碎片带来的性能的提高 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.2 ORACLE数据库碎片 –对象碎片 碎片问题可能发生在对象级。对象碎片会导致:由 于在表和索引块中的自由空间空洞导致空间的浪费; 读性能下降,因为数据不再被紧紧地排在一起,物理 磁盘驱动器必需从一个比需要的大的磁盘表面区域中 搜寻和读数据。 对象碎片的三个特殊碎片类型:行转移、行链接和 过分扩展的段。 DELETE操作可能会产生稀疏的块,因为这些块不满 足PCTUSED条件,以至没有成为自由空间。处理对象 碎片的操作也会处理这类稀疏的块问题。 DBA在一个经常改变的表空间中发现空间分配问题, 并重建了表空间和它的所有对象,随后数据库性能提 高了。这种在性能上的提高是消除表空间碎片的结果, 但也可能是消除对象级碎片带来的性能的提高