Оптимизация уровня приложения - PullRequest
1 голос
/ 29 декабря 2011

Каков наилучший способ вызвать хранимую процедуру и все еще иметь очень низкое время ответа в 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 Ответ

1 голос
/ 29 декабря 2011

То, что вы написали, безусловно, является одним из наиболее эффективных способов. Я предполагаю, что вы точно установили CommandText в качестве имени вашей хранимой процедуры.

Вашвремя отклика , вероятно, связано с сетевой топологией или доступными ресурсами сервера sql .(Предполагая, что ваш sp извиняется в течение очень короткого времени при тестировании непосредственно на сервере sql.)

Посмотрите вторую таблицу на этой странице http://ormeter.net/, чтобы увидеть, сколько ORM добавляет ко времени выполнения, если этоэто то, что вы рассматриваете как вариант.

Если вы хотите микрооптимизировать то, что происходит в клиентском коде, вы можете использовать средство чтения данных вместо заполнения набора данных.Это немного снижает накладные расходы, но по сравнению с доступом к базе данных обычно пренебрежимо мало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...