数据库效率
测试用表:4列,一列为int类型,2列varchar,1列char
添加
往数据库里添加数据目前测试了3个方案
1. 根据数据生成sql语句,直接插入
2. 采用sql传参数的方式插入
3. 采用DataTable更新的方法
测试结果:
在插入5000条记录的时候,方案1和方案2的事件都在2.3s~2.4s,方案1比方案2略快一点,方案3事件在12s上下
从代码的角度上来看,如果可以预知要存储的数据里不带单引号,用方案1还可以再加快一点点数据。不过我倾向使用方案2。
测试代码:
方案1:直接生成sql语句
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into andString(");
strSql.Append("ID, string1,string2,string3");
strSql.Append(")");
strSql.Append(" values (");
strSql.Append(""+model.ID.ToString()+",");
strSql.Append("'"+model.string1.Replace("'", "''") +"',");
strSql.Append("'"+model.string2.Replace("'", "''") +"',");
strSql.Append("'"+model.string3.Replace("'", "''") +"'");
strSql.Append(")");
DbManagerSQL.ExecuteSql(strSql.ToString());
方案2:传参数
StringBuilder addstrSql=new StringBuilder();
addstrSql.Append("insert into andString(");
addstrSql.Append("ID,string1,string2,string3)");
addstrSql.Append(" values (");
addstrSql.Append("@ID,@string1,@string2,@string3)");
SqlParameter[] parameters = {
new SqlParameter("@ID", SqlDbType.Int,4),
new SqlParameter("@string1", SqlDbType.VarChar,200),
new SqlParameter("@string2", SqlDbType.VarChar,2000),
new SqlParameter("@string3", SqlDbType.Char,20)};