我正在使用DataAdapter
Batch 将批量大小 = 1000 插入到多对多表中
我有 3 张桌子
- 学校(ID、姓名)
- 学生(身份证,姓名)
- SCHOOL_STUDENT (SCHOOL_ID, STUDENT_ID)
我正在尝试向表 SCHOOL_STUDENT 插入大约 700K 行,但速度很慢我将学校名称和学生姓名传递给存储过程
(
@schoolName varchar(100),
@studentName varchar(50)
)
AS
BEGIN transaction
declare @scoolId int,@studentId int
set @scoolId = (select ID from SCHOOL where [SCHOOL_NAME] = @schoolName)
set @studentId = (select ID from STUDENT where STUDENT_NAME = @studentName)
INSERT INTO [dbo].SCHOOL_STUDENT
(SCHOOL_ID,STUDENT_ID)
VALUES
(@scoolId,@studentId)
commit transaction
但这需要大约 1 小时才能运行。我怎样才能加快速度,因为我事先也不知道school_Id
,student_Id
所以我必须始终在存储过程中选择它们。(有没有更好的办法)
应用程序的流程是首先插入所有学生,然后插入所有学校,然后将它们链接到表 school_student 中。