powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как наилучшим образом выполнить несколько UPDATE в MS SQL 2005SE
6 сообщений из 6, страница 1 из 1
Как наилучшим образом выполнить несколько UPDATE в MS SQL 2005SE
    #34175579
kolka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как оптимизировать update нескольких строк, на данный момнет использую метод , в котором заново создается SQLConnection, SQLcommand, и вызываю метод для каждой записи отдельно, таких записей в среднем 200 - 300
...
Рейтинг: 0 / 0
Как наилучшим образом выполнить несколько UPDATE в MS SQL 2005SE
    #34175600
jenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pervoe - Store Procedure
...
Рейтинг: 0 / 0
Как наилучшим образом выполнить несколько UPDATE в MS SQL 2005SE
    #34175627
ScаliаR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Либо держать соединение и не закрывать его, либо выполнять напрямую в базе сразу несколько апдейтов в одном вызове...

Я предпочитаю вариант - держать соединение и юзать хранимые процедуры.

А вообще - если у тебя какое-то действие вызывает порядка 200 апдейтов - пиши хранимку и в ней делай эти 200 апдейтов. конечно если логика построения этих запросов может быть выдрана из кода и перенесена в хранимки, в противном случае: подумать над оптимизацией самого запроса, выполнять sql запросы напрямую без хранимых процедур.С уважением, Денис
...
Рейтинг: 0 / 0
Как наилучшим образом выполнить несколько UPDATE в MS SQL 2005SE
    #34175693
kolka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделано так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
         using (SqlConnection connection = new SqlConnection(connectionString))
         {
            String updateStr = @"UPDATE ";
            using (SqlCommand cmd = new SqlCommand(updateStr, connection))
            {
               cmd.Parameters.AddWithValue("@iid", iid);
               cmd.Parameters.AddWithValue("@cid", cid);
               connection.Open();
               cmd.ExecuteNonQuery();
            }
         }
      }

Думаю переделать так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
         using (SqlConnection connection = new SqlConnection(connectionString))
         {
            String updateStr = @"UPDATE ";
            using (SqlCommand cmd = new SqlCommand(updateStr, connection))
            {
               connection.Open();
                // так реально сделать??
               foreach(Item it in Items)
               {
                   cmd.Parameters.AddWithValue("@iid", it.iid);
                   cmd.Parameters.AddWithValue("@cid", it.cid);
                   cmd.ExecuteNonQuery();
               }

            }
         }
      }

...
Рейтинг: 0 / 0
Как наилучшим образом выполнить несколько UPDATE в MS SQL 2005SE
    #34175755
BlackTigerAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Создаешь параметризированный SqlCommand для UPDATE
2. Открываешь транзакцию
3. Делаешь все свои апдейты
4. Подтверждаешь транзакцию

Если же не создавать транзакцию руками, то они всё равно будет создаваться, но уже ДЛЯ КАЖДОГО UPDATE, и коммитится тоже для каждого. Оттого и тормоза.

Еще вариант есть. Но с ним надо быть ОЧЕНЬ осторожным. Можно сгенерировать на клиенте один БОЛЬШООООЙ скрипт, где будут собраны все обновления, а потом целиком его на сервер и послать. 
How can men die better than facing fearful odds,
For the ashes of their fathers and the temples of their gods?

| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |
...
Рейтинг: 0 / 0
Как наилучшим образом выполнить несколько UPDATE в MS SQL 2005SE
    #34175861
Guest_New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите в сторону SqlDataAdapter.Update().

По моему в данном случае это будет удобнее.

--------------------
С уважением.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как наилучшим образом выполнить несколько UPDATE в MS SQL 2005SE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]