我正在使用oracle数据库。如果有一个大的事务要做(700个表,百万行,数据大小将在100G左右),哪些参数需要被罚款调整? oracle服务器的磁盘空间为250G,32G RAM。 (这是针对superuser / serverfault的问题吗?请移动)
答案 0 :(得分:2)
我不认为250G就足够了。您的表空间中将有100G数据(.DBF文件),以及ORL中的100G未提交事务(联机重做日志)。并且磁盘上的实际大小会更大(您应该调整PCTUSED和PCTFREE,以便Oracle尝试填充每个块而不是为行扩展空间),即使如此粗略猜测您需要130-150G的DBF来保存那么多数据。
Oracle完全有能力做这么大的事务,如果你真的需要做一个单一的原子100G更新,那就不要害怕了。您只需要确保硬件上的物理可能性。如果你的原始数据文件格式合适,那么你最好的选择就是SQL*Loader Direct Path Load。这会将块直接写入DBF。它非常快,但不是很灵活。
除了性能之外,RAM在这种情况下并不重要。
答案 1 :(得分:1)
你应该有回滚段的空间,可能超过100GB,但你的方法并不是最好的。 你应该避免在一个交易中做所有事情。 尝试以较小的一致步骤拆分流程。如果步骤N失败,则必须可以重试步骤N,而不撤消步骤1到N-1。