Lie*_*oen 1 sql-server ado.net
我们使用orm映射器工具尝试了它,但它打开en关闭连接750次.然后我们尝试构建一个批量插入,但这甚至更慢......
编辑:
CREATE TABLE [dbo].[DataWarehouse](
[DataWarehouseId] [int] IDENTITY(1,1) NOT NULL,
[ColumnName] [nvarchar](max) NOT NULL,
[ColumnValue] [nvarchar](max) NOT NULL,
[RRN] [nvarchar](50) NOT NULL,
[PackageSessionId] [int] NOT NULL,
[AccessCode] [nvarchar](100) NOT NULL,
[Selectie] [nvarchar](150) NOT NULL,
[Date] [smalldatetime] NOT NULL,
[PackageId] [int] NOT NULL,
[Category] [nvarchar](500) NULL,
[OrderId] [int] NOT NULL,
[Category2] [nvarchar](500) NULL,
[TestCode] [nvarchar](200) NULL,
[Category3] [int] NULL,
[QuestionSpecificCategory] [nvarchar](max) NULL,
CONSTRAINT [PK_DataWarehouse] PRIMARY KEY CLUSTERED
(
[DataWarehouseId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
使用简单SqlCommand应该足够快750行,除非你有一些非常繁重的字段,或数据库中一些非常昂贵的索引/约束:
var insert = new SqlCommand("INSERT INTO ...", connection);
var fooParam = insert.Parameters.Add("Foo", SqlType.Int);
for (int i = 0; i < 750; i++)
{
fooParam.Value = i;
insert.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)