Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по организации выполнения запросов к базе, выполнении многих запросов к базе 
:(
    Опции темы
Экскалупатор
Дата 3.8.2010, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 3
Всего: 24



Всем здравствовать. есть такой вопрос. К примеру у меня есть такой запрос: "UPDATE `clients` SET `owner_id` = '{2}' WHERE `owner_id` = '{1}' AND `name` LIKE '{0}';" куда я подставляю параметры из массива. массивы бывают достаточно большими, к примеру 300-400 элементов. получается что мне нужно выполнить 300-400 запросов к базе. а вопрос вот в чем: как лучше это сделать? 
т.е. 
1. сначала собирать запрос к базе, потом открывать соединение, выполнять запрос, закрывать соединение, и так 300-400 раз, соединения конечно будут выбираться из пула
или
2. открыть одно соединение и потом собирать запросы и выполнять, соединение закрывать после выполнения всех запросов. в этом случае база будет долго занята.

мне второй вариант не очень нравиться.
или может есть какой то другой вариант выполнения подобной задачи? хранимые процедуры использовать не получиться(да я и не знаю как написать процедуру которая принимает массив параметров).
PM MAIL ICQ   Вверх
jonie
Дата 3.8.2010, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Экскалупатор, сделай все одним запросом. В CommandText укажи все свои 300 update запросов и исполни - и пусть ядро СУБД парится


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Экскалупатор
Дата 3.8.2010, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 3
Всего: 24



jonie, ты думаешь это будет лучший вариант? забыл уточнить что с базой еще одновременно работают около 20 человек. правда они не делают столько запросов за раз, но тем не менее очень страдают когда база вдруг не отвечает...
PM MAIL ICQ   Вверх
mrbrooks
Дата 4.8.2010, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 5
Всего: 306



1. все выполнить одной транзакцией или разбить по порциям. 
2. все сделать за одно подключение.
3. если строка обновления одинаковая - то использовать параметризованный запрос в цикле.
PM MAIL   Вверх
jonie
Дата 4.8.2010, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Цитата(Экскалупатор @ 3.8.2010,  20:11)
jonie, ты думаешь это будет лучший вариант? забыл уточнить что с базой еще одновременно работают около 20 человек. правда они не делают столько запросов за раз, но тем не менее очень страдают когда база вдруг не отвечает...

Твои запросы похожи на регламентные операции... подождут.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Экскалупатор
Дата 5.8.2010, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 3
Всего: 24



Цитата(jonie @  4.8.2010,  20:47 Найти цитируемый пост)
Твои запросы похожи на регламентные операции... подождут. 

согласен... подождут.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.