S.P

导航

数据库插入性能测试

Posted on 2012-01-12 09:32  S.P  阅读(402)  评论(0)    收藏  举报

数据表: Test(ID int iddentity(1,1), Name nvarchar(50))

操作系统:Windows 2003  数据库:SQL Server 2008 Express

CPU: T4300 2.1G

内存:4G

 

测试方式1
循环10000次再统一事务插入

for (var i = 0; i < 10000; i++){

        TDC.Test.InsertOnSubmit(new Test() { Name = DateTime.UtcNow.ToString() });

}

TDC.SubmitChanges();

 耗时:8909毫秒

 

测试方式2

循环10000次分别插入

for (var i = 0; i < 10000; i++){

TDC.Test.InsertOnSubmit(new Test() { Name = DateTime.UtcNow.ToString() });

TDC.SubmitChanges();

}

 耗时:583392毫秒

 

测试方式3

直接写SQL插入

 using (DbExecutor db = NewExecutor()){
   for (var i = 0; i < 10000; i++){
       db.ExecuteNonQuery(System.Data.CommandType.Text, "INSERT INTO Test Values(@Name)",  NewParam("@Name", DateTime.UtcNow.ToString()));
   }
}

 耗时:6790毫秒

 

测试方式4

使用SP.Studio 封装的Add方法

 using (DbExecutor db = NewExecutor()){
    for (var i = 0; i < 10000; i++){
         new Test() { Name = DateTime.UtcNow.ToString() }.Add(db);
    }
}

 耗时:8100毫秒

 

测试方式5

使用SP.Studio 封装的Add方法(使用事务)

using (DbExecutor db = NewExecutor(IsolationLevel.ReadCommitted)){
   for (var i = 0; i < 10000; i++){
        new Test() { Name = DateTime.UtcNow.ToString() }.Add(db);
   }
   db.Commit();
}

 耗时:4843毫秒