c# - 如何加速此 C# 函数/SQL 插入?

标签 c# .net sql sql-server

此代码序列化一个整数数组,然后将其插入到一个 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/

相关文章:

c# - .NET:获取所有 Outlook 日历项

javascript - C# 和网站之间通过 localhost 进行套接字/通知

mysql - SQL如何使用group by计算每个客户的总行数?

c# - 用户可见的 protected 成员

c# - Crystal Reports 与 css .net 冲突

c# - 如何获取表行中的所有 HtmlInputText 控件?

c# - Properties.Settings.Default 自定义列表类型未保存!

mysql - 停止左连接中的数据重复

mysql - 餐厅预订可用时段有不同的间隔

c# - 如果文本框为空,此代码返回日期 1-1-0001 ...我希望它返回空或空字符串,那么我该怎么办?