gpt4 book ai didi

sql - Oracle 直接加载插入 54,061,487 条记录

转载 作者:行者123 更新时间:2023-12-04 22:40:20 25 4
gpt4 key购买 nike

我有 54,061,487 条记录的直接加载插入。我正在寻找速度。我根本不需要回滚。

所有涉及的表都设置为 NOLOGGING .

这是执行此操作的一种方法

EXECUTE IMMEDIATE 'TRUNCATE TABLE meRegionsNow';
...

INSERT /*+ APPEND */ INTO meRegionsNow(
carrierId ,
region ,
zip ,
side ,
subPlanTypeId ,
monthIn )
SELECT
r.carrierId as carrierId ,
r.region as region ,
r.zip as zip ,
r.side as side ,
r.subPlanTypeId as subPlanTypeId ,
t.monthIn as monthIn
FROM
meTimeline t
INNER JOIN region r
ON t.monthIn >= r.effective AND
t.monthIn <= r.expiry;

执行计划符合预期(使用正确的
索引以加快连接速度):
 Statement Id=5336   Type=  
Cost=2.64022111505165E-308 TimeStamp=25-10-11::15::35:08

(1) SELECT STATEMENT ALL_ROWS
Est. Rows: 5,667 Cost: 483
(5) TABLE TABLE ACCESS BY INDEX ROWID SCHEMA.REGION [Analyzed]
(5) Blocks: 2,826 Est. Rows: 944 of 377,779 Cost: 80
Tablespace: USERS
(4) NESTED LOOPS
Est. Rows: 5,667 Cost: 483
(2) INDEX INDEX FULL SCAN SCHEMA.METL$MONTHIN [Analyzed]
Est. Rows: 6 Cost: 1
(3) INDEX INDEX RANGE SCAN SCHEMA.RGN$MULTI3 [Analyzed]
Est. Rows: 944 Cost: 72

这是执行此操作的另一种方法:
EXECUTE IMMEDIATE 'TRUNCATE TABLE meRegionsNow';
...

DECLARE
CURSOR meTimeline_cur IS
SELECT monthIn
FROM meTimeline
ORDER BY monthIn;
BEGIN
FOR meTimeline_rec IN meTimeline_cur LOOP
/* Cross regions with timeline */
INSERT /*+ APPEND */ INTO meRegionsNow(
carrierId ,
region ,
zip ,
side ,
subPlanTypeId ,
monthIn )
SELECT
r.carrierId as carrierId ,
r.region as region ,
r.zip as zip ,
r.side as side ,
r.subPlanTypeId as subPlanTypeId ,
meTimeline_rec.monthIn as monthIn
FROM region r
WHERE
meTimeline_rec.monthIn >= r.effective AND
meTimeline_rec.monthIn <= r.expiry;
COMMIT;
END LOOP;
END;

最快的方法是什么?我认为游标控制的直接加载插入和直接 SQL 直接加载插入之间没有太大区别。

同样,我不关心日志记录、回滚、保留任何撤消数据。我怀疑这需要很长时间的原因是表空间数据文件使用太小的默认范围太频繁地自动扩展。

我想只要我调整 meRegionsNow 的大小,这个问题就会解决。表空间
数据文件。

最佳答案

第一种方法可能更快,因为它在 PL/SQL 引擎和 SQL 引擎之间的上下文切换较少。您可以通过尝试这两种方法轻松找到答案。

关于sql - Oracle 直接加载插入 54,061,487 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com