我的问题是使用以下方法调用大约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;
}
代码将返回一个数据表,但我正在寻找性能改进