Ссылка на статью следующая:
http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html
1: Безопасен ли SqlConnection по потокам?
Известно, что использование соединения для выполнения SQL-оператора в многопоточной среде —НебезопасноЦель.
SqlConnection не является потечь-безопасным, поэтому многопоточность неизбежно станет проблемой. На самом деле, .NET автоматически обеспечивает управление пулом соединений: если строка соединения одинакова (должна быть точно такой же), она будет в том же пуле, открытые и закрытые устройства фактически берут соединение из пула и возвращают его обратно в пул, что не вызовет проблем с производительностью. Поэтому после открытия каждого соединения его следует закрывать как можно скорее после использования, чтобы соединение можно было вернуть в пул для использования другими программами.
2: Почему люди до сих пор используют вышеуказанный метод написания для создания связей?
Думаю, они могут считать, что создание нескольких соединений занимает много времени, и что несколько соединений занимают память, влияют на производительность и так далее.
3: Занимает ли каждое новое SqlConnection память и ресурсы, влияя на производительность?
Это слепое мышление, слепое беспокойство.
Потому что«Создание нескольких соединений» не обязательно создаёт несколько новых подключений к базе данных.Подключение к базе данных — ценный ресурс, с точки зрения MS SQL Server, этот ценный ресурс будет оптимизирован внутри системы, и соединение будет повторно использоваться.
Пул соединений предоставляется через .net, в строке соединения есть свойство пула, по умолчанию оно true, то есть пул соединений по умолчанию включён, это не имеет отношения к sql-серверу, если вы вводите Pooling=false в строку соединения, то пула соединений не будет, это полностью . .NET-оптимизация.
Исследование последствий использования одного и того же соединения базы данных в нескольких потоках Ссылка на статью: http://www.th7.cn/Program/java/201503/415005.shtml
Резюме: В многопоточной среде использование одного соединения может вызвать путаницу при транзакциях без обеспечения безопасности потока соединения.... Влияет на использование транзакций JDBC...
|