暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 全球温度表

ASKTOM 2020-10-07
239

问题描述

我们正在考虑使用GTT表方法来解决我们应用程序中存在的各种 “暂存表” 要求的价值。我们通常将多Mb数据 (每次频繁的并发数据加载50-100 Mb) 加载到暂存表中,从该表中我们将数据转换,验证和合并到持久化的投资组合数据表中,然后从暂存表中删除单个加载特定数据。

我们希望用等效的GTT和索引等替换我们的暂存表将消除在每个数据加载过程结束时删除暂存数据的开销。我们也了解,尽管我们还没有在Oracle docs上找到确认,但如果PGA耗尽,GTT将在可能的情况下使用PGA空间,然后再将数据溢出到临时表空间中。如果我们在这里的理解没有被误导,那么我们也可以考虑将我们的数据加载流分成更小的块,以更好地利用可用的PGA内存?

我们的问题确实是-就我们对最佳利用GTT方法的理解而言,我们是否走上了正确的道路,您是否会鼓励其他关键考虑因素或政策规则?

谢谢你的时间 ....

德莫特 ..

专家解答

数据库将临时表的数据存储在临时表空间的临时段中。

If our understanding here is not misguided then we might also consider splitting our data loading flows into smaller chunks to make better use of available PGA memory ?

这听起来像是一个过早优化的案例-我不认为从一开始就设计你的流程来做到这一点的理由。

当您有很少的语句查找/更改所有必要的行时,SQL处理是最快的。所以我会开始处理所有的数据在一个过程中,只有从这个切换,如果你遇到一些边缘的情况,这是不正确的。

所有无法放入内存的SQL处理都将溢出到临时磁盘-这对于大排序,哈希联接和分组很常见。如果在编写加载过程后,您发现它正在使用大量的温度,这使得将其拆分太慢可能是有意义的。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论