【发布时间】:2021-09-19 14:59:34
【问题描述】:
我们的customer 正在将过去 3 年的数据加载到一个新的报告产品中。它有数百万条记录。我们的中间query 正在生成964M 记录,在这个阶段job 由于insufficient temp storage 而失败。他们将温度空间增加了三次。我们的query plan 和joins 是正确的
我的问题是。
- 我们能否给他们一些估计,对于十亿记录,您需要
temptablespace中的这个数量的data file。 - 是否可以计算上述统计数据?正如我与一些专家交谈的那样,他们说容量规划是不可能的。
我知道记录非常庞大,它们可能还需要更换硬件。但是有什么我们可以建议他们在内存级别和硬件级别进行更改的。
如果你愿意,我可以附上explain plan 和trace here。
【问题讨论】:
-
是的,亚历克斯。只有我提出了这个问题。我想我可以以更好的方式提出问题,并且可以查找一些具体信息,所以我提出来了。顺便说一句,这两个问题有时可能会有所不同。
-
您在上一个问题上发布的“解释计划”是一个跟踪,而不是
EXPLAIN PLAN命令的输出。一个适当的解释计划将估计每个步骤将涉及多少字节的数据,以及哪些步骤将涉及对 TEMP 表空间的写入。根据您上一个问题的要求,使用EXPLAIN PLAN命令生成计划并发布这些结果。请注意,这仍然只是一个估计值,但它至少应该让您大致了解您正在查看的内容。 -
在dba.stackexchange.com 上提问。并且,请让您的数据库管理员和“新报告产品”的供应商来帮助您。您似乎不太可能在不更改报告产品代码的情况下围绕此进行编程。
-
在问题上投入临时空间并不是最好的解决方案。任何使用大量临时空间的东西都会让我寻找更有效的方法来实现这一点。我将在您的原始帖子上发布有关减少临时空间的想法,但正如每个人所说,您需要查看解释计划以了解临时使用的位置。
标签: oracle oracle11g query-optimization oracle12c database-administration