我遇到导入任务的性能问题(用户需要将新数据导入系统)并且可能没什么帮助。
数据库中的数据如下所示:
表Categories
:
列:
Id int primary key identity(1,1)
Code nvarchar(20) not null
RootId int not null
ParentId int not null
表CategoryNames
:
列:
CategoryId int not null foreign key references Category (Id)
LanguageId int not null foreign key references Language (Id)
Name nvarchar(100)
目前它的工作方式如下:每行
我已经摆脱了每行数据的创建和关闭连接。但它还不够好。
目前任务需要大约36分钟才能插入~22000个类别。 存储过程如下所示:
procedure Category_Insert
(@code nvarchar(20),
@root int,
@parent int,
@languageId int,
@name nvarchar(100),
@id int output)
as
set nocount on
insert into Categories (Code, RootId, ParentId)
values (@code, @root, @parent)
select id = scope_identity()
insert into CategoryNames (CategoryId, LanguageId, Name)
values (@id, @languageId, @name)
我有什么建议可以加快这项任务的表现吗?
我很想使用批量插入或类似的东西,但我如何通过批量插入实现存储过程的逻辑?
或者是其他任何加快速度的方法吗?