关于前台SQL语句,该怎么处理
关于前台SQL语句
一、要循环向数据库中插入数据.
问1:在前台的C#中写循环好,还是在储存过程中写循环好?
问2:用前台的循环是一条一条的插入,还是循环完后一起插入;用储存过程是一条一条插入还是循环后一起插入的,或者二者都不是?
------解决方案--------------------
不管站在哪个角度,都是批量的方式比较快
如果是用C#的话,有一种Bulk的方式插入,就是整理好数据后,一次性插入,而不是循环一次,插入一条
参考
------解决方案--------------------
问1:在前台的C#中写循环好,还是在储存过程中写循环好?
--> 在储存过程中写循环好
问2:用前台的循环是一条一条的插入,还是循环完后一起插入;用储存过程是一条一条插入还是循环后一起插入的,或者二者都不是?
--> 用存储过程,循环插入到临时表,然后再一次批量插入目标表,有利于减少锁阻塞的发生.
一、要循环向数据库中插入数据.
问1:在前台的C#中写循环好,还是在储存过程中写循环好?
问2:用前台的循环是一条一条的插入,还是循环完后一起插入;用储存过程是一条一条插入还是循环后一起插入的,或者二者都不是?
------解决方案--------------------
不管站在哪个角度,都是批量的方式比较快
如果是用C#的话,有一种Bulk的方式插入,就是整理好数据后,一次性插入,而不是循环一次,插入一条
参考
/// <summary>
/// Bulk方式插入
/// </summary>
/// <param name="dt"></param>
public void ExecuteSqlBulkCopy(DataTable dt)
{
using (SqlConnection conn = new SqlConnection(GetConnectionString))
{
SqlBulkCopy bulk = new SqlBulkCopy(conn);
bulk.DestinationTableName = "TestTable";
bulk.BatchSize = dt.Rows.Count;
if (dt != null && dt.Rows.Count != 0)
{
conn.Open();
bulk.WriteToServer(dt);
}
bulk.Close();
}
}
------解决方案--------------------
问1:在前台的C#中写循环好,还是在储存过程中写循环好?
--> 在储存过程中写循环好
问2:用前台的循环是一条一条的插入,还是循环完后一起插入;用储存过程是一条一条插入还是循环后一起插入的,或者二者都不是?
--> 用存储过程,循环插入到临时表,然后再一次批量插入目标表,有利于减少锁阻塞的发生.