C# 使用企业库优化执行的插入查询
我已经编写了一个SQL SP来在MSSQL表中插入记录C# 使用企业库优化执行的插入查询,c#,sql,asp.net,sql-server,C#,Sql,Asp.net,Sql Server,我已经编写了一个SQL SP来在MSSQL表中插入记录 CREATE PROCEDURE AddAmazonIT @BatchID INT, @ITName NVARCHAR(MAX) AS BEGIN INSERT INTO tbl_AmazonITMaster (Batch_Id,IT_Name) VALUES (@BatchID,@ITName) SELECT @@IDENTITY END 我有大约15000条记录要插入数据库, 我正在使用ent
CREATE PROCEDURE AddAmazonIT
@BatchID INT,
@ITName NVARCHAR(MAX)
AS
BEGIN
INSERT INTO tbl_AmazonITMaster
(Batch_Id,IT_Name)
VALUES
(@BatchID,@ITName)
SELECT @@IDENTITY
END
我有大约15000条记录要插入数据库,我正在使用enterprise library ExecuteScalar方法调用SP…
插入数据时需要花费大量的时间
C#对象管理器类如下所示:
public class BaseRepository
{
private string _key = "SqlDatabase";
public SqlDatabase Db
{
get {
if (ContextRepository.GetData(_key) == null)
{
ContextRepository.SetData(_key, DatabaseFactory.CreateDatabase());
}
return (SqlDatabase)ContextRepository.GetData(_key);
}
}
public SqlConnection Con
{
get {
return new SqlConnection(ConfigurationManager.ConnectionStrings["PTMap"].ConnectionString);
}
}
}
public class AmazonITRepository:BaseRepository
{
public int Add(AmazonIT it)
{
return Convert.ToInt32(Db.ExecuteScalar("AddAmazonIT", it.Batch_Id, it.IT_Name));
}
}
您知道如何对此进行优化吗?您无法真正“优化”插入单个记录的特定代码位和SP,调用它15000次可能总是相当慢的。插入15000条记录可能有更有效的方法,但它们不会使用您粘贴的代码。您应该看看使用SQLBulkCopy插入这一数量的行。看见