Многопоточный доступ к базе данных (.NET) - PullRequest
2 голосов
/ 11 августа 2009

Я сейчас создаю приложение, которое генерирует кавычки. Общее время генерации всех кавычек составляет около 10 секунд и в настоящее время обеспечивает неприемлемое взаимодействие с пользователем.

Я хочу сделать многопоточную каждую кавычку, чтобы пользователь мог видеть результаты по мере их поступления. Проблема в том, что приложение, которое я унаследовал, выполняет много логики шины на БД.

Что меня интересует, так это то, что нормально многопоточность каждого элемента цитаты, или это вызвало бы слишком большую нагрузку на сервер БД (например, 5 кавычек = 5 потоков или элементов потока задач) *

Ответы [ 4 ]

1 голос
/ 11 августа 2009

В большинстве RDBMS 5 одновременных соединений не должны быть проблемой, поэтому я думаю, что вы можете легко иметь пять потоков, каждый из которых использует свое собственное соединение

0 голосов
/ 11 августа 2009

Не должно быть проблем с загрузкой базы данных. Тем не менее, вы захотите проверить код на наличие условий взаимоблокировки, которые вы, скорее всего, найдете, когда начнете работать параллельно. Кроме того, границы вашей транзакции должны быть четко определены, но если это генерирует кавычку, я не думаю, что ReadUncommitted будет проблемой

0 голосов
/ 11 августа 2009

Единственное, о чем я бы беспокоился, это то, что «генерирование цитаты» влечет за собой в БД. Это может включать в себя запись в базу данных, и если у вас есть много транзакционной активности, различные кавычки могут конкурировать друг с другом и могут заканчиваться последовательными кавычками из-за блокировки или, что еще хуже, из-за взаимоблокировки.

Это, однако, сценарий наихудшего случая, исходя из скудных подробностей, приведенных в вопросе.

0 голосов
/ 11 августа 2009

Базы данных обычно предназначены для обработки нескольких одновременных соединений. Так что не о чем беспокоиться.

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