我使用DataAdapter
批次到插入到多对多表 批量大小= 1000插入使用存储的过程是很慢的
我有3个表
- 学校(ID,姓名)
- 学生(ID,姓名)
- SCHOOL_STUDENT(学校ID,student_id数据)
我试图围绕700K行插入表中SCHOOL_STUDENT但它是非常缓慢的 我传递的校名和学生姓名存储过程
(
@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
既不提前,那么我必须在存储过程中始终选择它们。 (有没有更好的方法)
申请流程是先插入所有学生,然后插入所有学校,然后将它们链接到表school_student中。
您的学校和学生表可能需要一些索引。可能是SCHOOL.Id,SCHOOL.SCHOOL_NAME和STUDENT.ID,STUDENT.NAME中的一个。 – Romoku 2013-03-19 01:10:31
看起来您没有在“SCHOOL”表上设置索引。 – Dai 2013-03-19 01:13:35