Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 19962|Відповідь: 0

[Джерело] Як правильно користуватися SqlConnection, чи безпечний потік SqlConnection?

[Копіювати посилання]
Опубліковано 19.11.2016 08:46:14 | | |
Посилання на статтю таке:

http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html

1: Чи безпечний SqlConnection у потоках?

Відомо, що використання Connection для виконання Sql-оператора в багатопотоковому середовищі — цеНебезпечноЦіль.

SQL Connection не є безпечним для потоків, тому багатопотокність обов'язково стане проблемою.
Насправді, .NET автоматично забезпечує керування пулом з'єднань: якщо рядок з'єднання однаковий (має бути точно таким самим), він буде в тому ж пулі, відкриті та закриті пристрої фактично беруть з'єднання з пулу і повертають його назад у пул, що не спричиняє проблем із продуктивністю. Тому після відкриття кожного з'єднання його слід закрити якомога швидше після використання, щоб з'єднання можна було повернути до пулу для використання іншими програмами.



2: Чому люди досі використовують наведений вище метод письма для створення Connections?

Думаю, вони можуть вважати, що створення кількох з'єднань займає багато часу, а кілька з'єднань займають пам'ять, впливають на продуктивність тощо.


3: Чи займає кожен новий SqlConnection пам'ять і ресурси, впливаючи на продуктивність?

Це сліпе мислення, сліпе хвилювання.

Тому що«Створення кількох з'єднань» не обов'язково створює кілька нових з'єднань до бази данихПідключення до бази даних є цінним ресурсом, для MS SQL Server цей цінний ресурс оптимізується внутрішньо, і з'єднання буде повторно використано.

Пул з'єднань надається .net, у рядку з'єднання є властивість Pooling, за замовчуванням це істинно, тобто пул з'єднань увімкнений за замовчуванням, це не має нічого спільного з 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