调用存储过程的最佳方法是什么,并且在asp.net中仍然具有非常低的响应时间?我试过从适配器填充数据集:
SqlConnection conn = new SqlConnection(dbm.ConnectionString);
SqlCommand sqlcom = conn.CreateCommand();
sqlcom.CommandType = CommandType.StoredProcedure;
sqlcom.CommandText = "";
sqlcom.Parameters.Add(new SqlParameter("@SOME_ID", Session[IWConstants.SessionAccountID]));
sqlcom.Parameters.Add(new SqlParameter("@END_DATE", ""));
sqlcom.Parameters.Add(new SqlParameter("@FILTER_OPTION", ""));
sqlcom.Parameters.Add(new SqlParameter("@START_DATE", ""));
SqlDataAdapter sqlDA = new SqlDataAdapter(sqlcom);
DataSet ds = new DataSet();
sqlDA.Fill(ds);
csvDataTable = ds.Tables[0];
并且这个块给了我11,000多毫秒的响应是否有更好的方法呢?
答案 0 :(得分:1)
您所写的内容绝对是最有效的方式之一。我认为您实际上将CommandText
设置为存储过程的名称。
您的响应时间可能与网络拓扑或可用的sql server资源有关。 (假设你的sp在非常短的时间内直接在sql服务器上进行测试。)
查看此页面上的第二个表格http://ormeter.net/,看看ORM会增加多少执行时间,如果这是您正在考虑的选项。
如果要微观优化客户端代码中发生的情况,可以使用datareader而不是填充数据集。这略微降低了开销,但与访问数据库相比,它通常是可以忽略不计的。