У меня есть вопрос о закрытии соединения в C#. Компания имеет приложение, в котором данные автоматически передаются из приложения в БД. Я хотел бы создать собственное приложение ASP + C#, которое будет использовать в качестве источника для независимого отчета выбор из данных (таблица DB, заполненную из приложения компании). Мой вопрос: может ли закрытие подключения в моем приложении повлиять на второе (компания, очень важное приложение?) - запись будет отсутствовать в db из-за тесного соединения? или любые другие проблемы?Закрытие соединения с DB
ответ
Нет, все будет в безопасности, если вы закроете его должным образом. Я рекомендую вам всегда использовать конструкцию using
. Он будет автоматически преобразован в триггерные и закрытые ресурсы.
Это полностью зависит от вашего прецедента, если вы открываете и оставляете открытыми сотни и сотни, если не тысячи и тысячи пустых подключений, SQL Server постепенно начнет иметь некоторую деградацию производительности.
Подумайте об этом, поскольку вы спрашиваете своего босса за что-то, и вы говорите: «Босс, мне нужно задать вам вопрос». Но вы напоминаете ему сотни и тысячи раз в секунду: «Мне нужно задать вам вопрос». Все, что он пытается сделать, постепенно начнет терять производительность, поскольку он должен обработать тот факт, что вам придется задать ему вопрос. Аналогично Sql Server. Имейте ввиду, на данный момент у вас нет на самом деле задал ваш вопрос.
Если СУБД Microsoft SQL Server, обратитесь к этой статье: https://msdn.microsoft.com/en-us/library/ms187030.aspx
SQL Server позволяет максимум 32767 подключений пользователей.
Если вы откроете 32k соединения с сервером, две вещи, которые, скорее всего, произойдет:
- Ваш DBA придет к вам и сказать «WTF мат?» к тому времени, когда вы приблизитесь. Возникнет вероятный аргумент, в результате которого вы и администратор базы данных, вероятно, закончите кричать и создать сцену.
- Ваша СУБД достигнет максимального предела соединения, а другая все будет дергаться.
Не говорю, что все это будет происходить, что требует от вас, чтобы открыть 32,767
одновременно соединения, но это как раз идет дальше доказать, что вы должны открыть/закрыть по мере необходимости. Кроме того, если ваше приложение использует пул соединений, и вы открываете соединения n
, а лимит пула (отдельно от SQL Server - заметьте) - n
, вы просто прекратили открывать свое приложение.
Вообще говоря, вы должны открытые ваши соединения как конце как можно, и близко их как рано насколько это возможно.
- 1. Закрытие соединения DataMapper DB
- 2. Закрытие соединения с Access DB с OleDb
- 3. NamedParameterJdbcTemplate + TomCat, открытие и закрытие соединения DB
- 4. Flask + Postgresql и открытие/закрытие соединения db
- 5. Закрытие соединения
- 6. Закрытие соединения db с постоянным соединением django в многопоточном скрипте
- 7. С # с System.Data.SQLite - закрытие соединения
- 8. закрытие соединения с помощью скрученных
- 9. Закрытие соединения с `with` заявление
- 10. Автоматическое закрытие соединения с websocket
- 11. Закрытие соединения с приложением github
- 12. Как обрабатывать открытие/закрытие соединения Db в приложении Go?
- 13. Открытие и закрытие соединения DB при использовании нескольких потоков
- 14. Закрытие соединения и количество подключений к SQL Server DB
- 15. Mongoose не закрытие соединения
- 16. Закрытие соединения - InputStream
- 17. Закрытие соединения SQLObject
- 18. соединения и закрытие сессии
- 19. Hibernate закрытие соединения MySQL
- 20. Закрытие соединения Kafka
- 21. Закрытие соединения WCF
- 22. Закрытие соединения TCPlistener/клиента
- 23. Закрытие соединения в nodemailer
- 24. Закрытие DB в Mongoose
- 25. DB соединения: с закрытием() против __del__
- 26. Длинные соединения DB или соединения по требованию?
- 27. Закрытие соединения firebase в Node.JS
- 28. Ошибка соединения с ssrs DB
- 29. Установка соединения с подключением DB
- 30. Настройка соединения с несуществующим DB
Закрытие соединения не должно влиять ни на какие другие соединения. – jfin3204