我正在尝试运行一个脚本,该脚本一次将超过 2000 万条记录批量插入到 10,000 条表中。在运行开始时,它似乎工作正常。尽管一旦插入了大量记录(270,000),脚本的完成速度就开始变慢了。插入另外 30,000 条记录需要 23 小时。我最好的猜测是,随着新记录数量的增加,脚本检查新记录是否已经存在的部分需要更长的时间。我已经创建了脚本中使用的表的索引,但我需要为这个脚本缩短运行时间。任何帮助将非常感激。我的脚本如下。
CREATE NONCLUSTERED INDEX [plan2TMP] ON [dbo].[plan2]
(
[l_dr_plan1] ASC
)
INCLUDE
(
l_address,
l_provider
)ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [nameTMP] ON [dbo].[name]
(
[dr_id],
[nationalid]
)ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [plan1TMP] ON [dbo].[plan1]
(
[dr_id],
[cmt]
)ON [PRIMARY]
GO
DECLARE @BatchSize int = 10000
WHILE 1 = 1
BEGIN
INSERT INTO plan2(
l_dr_plan1
, l_address
, l_provider
)
SELECT TOP (@BatchSize)
dr1.link
,ad1.link
,dr.link
from plan1 dr1
INNER JOIN …Run Code Online (Sandbox Code Playgroud)