应用程序级优化

时间:2011-12-29 07:11:50

标签: c# asp.net sql

调用存储过程的最佳方法是什么,并且在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多毫秒的响应是否有更好的方法呢?

1 个答案:

答案 0 :(得分:1)

您所写的内容绝对是最有效的方式之一。我认为您实际上将CommandText设置为存储过程的名称。

您的响应时间可能与网络拓扑可用的sql server资源有关。 (假设你的sp在非常短的时间内直接在sql服务器上进行测试。)

查看此页面上的第二个表格http://ormeter.net/,看看ORM会增加多少执行时间,如果这是您正在考虑的选项。

如果要微观优化客户端代码中发生的情况,可以使用datareader而不是填充数据集。这略微降低了开销,但与访问数据库相比,它通常是可以忽略不计的。