我只是试图从数据集中导入数据到数据库(Sql),但是当我尝试导入70000行时它慢一点。我做错了什么或失踪? 请给我一些建议,我怎么能做得更好?缓慢的数据插入Sql
这里是我的asp.net代码:
ArtiDB entity = new ArtiDB();
int grid = 50;
foreach (string item_kisiler in kisiler)
{
if (item_kisiler == "")
continue;
if (Tools.isNumber(item_kisiler) == false)
continue;
else
{
string gsm1 = item_kisiler;
if (gsm1.Length > 10)
gsm1 = gsm1.Substring(1, 10);
entity.veriaktar(gsm1, gg, grid);
}
}
这是我的店prosedure:
alter proc veriaktar
(
@gsm1 nvarchar(50)=null,
@userid uniqueidentifier,
@grupid int = 0
)
as
begin
Declare @AltMusID int
if not exists (select * from tbl_AltMusteriler with (updlock, rowlock, holdlock) where [email protected] and [email protected])
begin
insert into tbl_AltMusteriler (Gsm1,UserId)
values (@gsm1,@userid)
Set @AltMusID = scope_identity()
end
else
begin
Set @AltMusID = (select AltMusteriID from tbl_AltMusteriler with (updlock, rowlock, holdlock) where [email protected] and [email protected])
end
if (@grupid != 0)
begin
if not exists (select * from tbl_KisiGrup with (updlock, rowlock, holdlock) where [email protected] and [email protected])
begin
insert into tbl_KisiGrup values(@grupid,@AltMusID)
end
end
end
go
看起来你正在尝试做70,000个单独的插入。数据集从哪里得到它们? – 2013-03-25 22:38:42
我只是从excel工作表填充数据集,但它并没有花费太多时间... – cooolstaff 2013-03-25 22:44:17
我看到的唯一的“错误”是你试图一次插入这么多行。怎么样把它分成块或使用后台服务? – rcdmk 2013-03-25 22:49:42