如何优化具有超过3000万行和250列的表的Oracle create table函数

时间:2019-05-30 08:59:28

标签: sql oracle performance parallel-processing partition

我需要从另一个具有相同行号和大约230列的表中创建一个具有超过3000万行和大约250列的表。就像ETL过程一样。我使用SPSS Modeler来运行具有流程算法的流。我需要加快这个过程。

在IBM netezza中,使用SPSS Modeler中的数据库内缓存以及用于输入和输出表的const images = ['a','b','c','d','e','f']; const rollTheDice = (arr, n) => { const randomN = []; while(randomN.length < n){ const randomIndex = Math.floor(Math.random()*arr.length); randomN.push(arr[randomIndex]); arr.splice(randomIndex, 1); } return randomN; } console.log(rollTheDice(images, 5));函数,此过程大约需要20-25分钟。

在Oracle中,相同的过程大约需要1.5到2个小时。我无法优化代码。我尝试了很多方法,使用PARALLEL函数创建输入和输出表,尝试索引输入表,尝试分区等。

最后,我将下面的语法用于输入和输出表,但是我无法取得任何进展。

DISTRIBUTE ON HASH

1 个答案:

答案 0 :(得分:0)

我会尝试使用哈希分区和并行处理来创建新表。 https://centroid.com/parallel-execution-and-partitioning/这里似乎是一个很好的讨论,可以帮助您开始实现它。