使用SQLCommand调用存储过程非常慢

时间:2019-06-17 14:51:51

标签: c# sql-server stored-procedures ado.net sqlcommand

我的问题是使用以下方法调用大约12个存储过程,我在c#中使用SQLCommand填充了一个表,但是返回所有数据大约需要6秒钟。

硬编码的sql速度很快,似乎可以非常快速地带回数据,但这是一种反模式

public DataTable ExecuteStoredProcedure(StoredProcedureParameters parameters, string procedureName)
    {
        DataTable data = new DataTable();

        using (SqlConnection conn = new SqlConnection(Config.DatabaseConnectionString))
        {
            SqlCommand sqlComm = new SqlCommand(procedureName, conn);

            // Loop through parameters and add them to the procedure
            foreach(var keyvalue in parameters.IntegerParameters)
            {
                sqlComm.Parameters.AddWithValue(keyvalue.Key, keyvalue.Value);
            }

            foreach (var keyvalue in parameters.StringParameters)
            {
                sqlComm.Parameters.AddWithValue(keyvalue.Key, keyvalue.Value);
            }

            sqlComm.CommandType = CommandType.StoredProcedure;

            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = sqlComm;

            da.Fill(data);


            return data;
        }

代码将返回一个数据表,但我正在寻找性能改进

0 个答案:

没有答案