2014-03-19 11 views
0

我正在处理这种每日批处理过程,在批处理中的插入过程中会一次又一次地抛出上述错误。 指定的表空间当前包含5个数据文件,全部只占40-50%。但有时尝试运行插入查询时,我们得到“无法创建初始范围..”。目前,由于批处理的紧迫性,添加数据文件正在解决问题,因为几乎一半的数据文件空间似乎被浪费了。无法为表空间xxx中的段创建初始范围,即使表空间具有足够的可用空间

我没有足够的权限来运行SYS DBA查询,但我需要想出这种行为的所有可能的原因。目前,我有以下信息

表空间是自动可扩展的。 数据文件数:6(最近增加了一个批次的问题时) 每个数据文件大小:29.3 GB 块:3,840,000 增量为:100 MB 最大尺寸:29.3 GB

随着我的研究,这样的问题可能是由于表空间中的碎片化[我迄今达到的最确凿的结论]。有没有其他可能的原因?

+0

多大它试图创建初始程度,什么是它试图创建一个段 - 一个新的表或索引(这将是奇数),分区...? –

+0

这个表空间是否也被指定为临时表空间? –

+0

我不得不说,这听起来像是一场打击上一场战争的例子,我将其定义为担心该“未使用”磁盘空间的成本,而不是在需要时没有可用磁盘空间的成本。 “未使用”磁盘空间的成本是固定的,并且很容易计算,并且可能非常低(PC磁盘空间现在成本低于0.25美元/ GB)。工作崩溃和重新启动的成本是可变的,更难以弄清楚,但IMO可能更高,尤其是当您考虑到人们的时间和迟到信息的成本时。因人而异。分享并享受。 –

回答

0

首先要知道的是,即使您释放了表空间内的一些空间,该空间也不会释放到系统中。有可能缩小桌面并减少它们内部的碎片。这里是你应该检查这种情况下:

  1. 表空间的大小是有限的;这个限制可以延长。

  2. 有文件系统

    • 检查数据库文件大小上没有更多的空间;例如做一个df -g /my_db/path/
    • 请注意在某些情况下,上面并没有给出100%,即使一个进程仍然锁定磁盘空间,并且必须被杀死才能释放空间。
相关问题