小编mep*_*ope的帖子

“不存在”似乎正在减慢插入速度

我正在尝试运行一个脚本,该脚本一次将超过 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)

performance sql-server insert logging query-performance

4
推荐指数
1
解决办法
526
查看次数