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

Вид: 19962|Ответ: 0

[Источник] Как правильно использовать SqlConnection, безопасен ли поток SqlConnection?

[Скопировать ссылку]
Опубликовано 19.11.2016 8:46:14 | | |
Ссылка на статью следующая:

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...




Предыдущий:javascrip{filter}t: разница между history.go() и History.back().
Следующий:C# Подключение к базам данных SQL Распространённые строки соединения
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com