此代码序列化一个整数数组,然后将其插入到一个 sql 表中。它没有我需要的那么快。我可以更有效地做任何事情吗?
谢谢!
public void SetItem(long Id, int[] items)
{
using (MemoryStream stream = new MemoryStream())
{
foreach (int d in items)
{
var bin = BitConverter.GetBytes(d); //Serialize
stream.Write(bin, 0, bin.Length);
}
var array = stream.ToArray();
using (SqlCommand cmd = new SqlCommand("INSERT INTO Items(Id, Item, DateCreated) VALUES (@Id, @binaryValue, @dateCreated)", sqlConnection))
{
cmd.Parameters.Add("@binaryValue", SqlDbType.VarBinary, array.Length).Value = array;
cmd.Parameters.Add("@Id", SqlDbType.BigInt).Value = Id;
cmd.Parameters.Add("@dateCreated", SqlDbType.DateTime2).Value = DateTime.Now;
cmd.ExecuteNonQuery();
}
}
}
最佳答案
我建议你把这个功能一分为二。一个关于字节数组,另一个关于插入数据库。
然后运行分析,看看你的字节数组代码是否很慢,或者它是否是数据库问题。
也许你正在尝试加速一些不慢的东西:)
关于c# - 如何加速此 C# 函数/SQL 插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5490295/