提高oracle AWS RDS上insert语句的速度

时间:2014-06-25 21:42:00

标签: sql oracle amazon-web-services bulkinsert rds

我的问题有多个方面,所以我会一次列出一个

1-我有一个人口统计表,其中包含UserID,Sex,...,State和一些多方答案问题,如汽车拥有和体育运动。此表采用非规范化形式,如果每个用户拥有多个汽车或进行多项运动,则每个用户可以拥有多行......(这需要这样,因为它由Tableau使用)

我还有另一个表“问题”,有三列,UserID,QuestionID,Answer。每个用户也可以为同一个问题提供多个答案。我的目标是获得一张表,作为将人口统计表与问题表相结合的结果。我有大约4200个用户和350个问题所以我的数据有点大。当我尝试加载时

create table "Final_Table" as 
select Demographic.*, Question.* from Demographic
left outer join Question on Demographic.UserId = Question.UserId

这个问题是我的内存不足。所以我所做的是创建一个程序,一次为一个用户执行此操作。如果用户没有很多答案,则运行该过程可能需要很短的时间,如果用户有很多答案,则运行该过程可能需要大约400秒。

我的问题是:有没有办法改进并自动化?我注意到当我把程序放在一个for循环中以循环遍历所有ID时,它比一次运行它需要更长的时间,我可能是错的但这是我在运行它几次时注意到的。 有没有办法我可以并行运行它,也许有多个线程,每个线程都运行一个用户?

2-问题的第二部分是:是否有针对最终表的推荐设计,或索引方面的源表?我在两个源表上都有一个UserId索引,在目标表上有一个UserId索引。

3-您是否建议运行快速或大型AWS RDS实例,直到我创建最终表格然后降低实例速度。我的数据没有变化,我只会这样做一次,然后我只会在决赛桌上阅读。

感谢并抱歉这个漫长的问题

0 个答案:

没有答案
相关问题