.NET数据库连接池是如何实现高效管理和复用的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1539个文字,预计阅读时间需要7分钟。
目录+前置知识背景
1..NET数据访问连接池背景
2..NET与数据访问连接池的体现
3..NET如何形成数据访问连接池
4.连接池中的连接何时被移除
.NET如何清空连接池一般我们的项目中“目录
- 前置知识背景
- 1. .NET数据库连接池的背景
- 2. .NET 数据库连接池的表现
- 3. .NET是如何形成数据库连接池的?
- 4. 连接池中的连接什么时候被移除?
- .NET 如何清空连接池?
一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配置拿到的是Connection对象。
DBA能在对业务方无侵入的情况下,给业务方切换备份数据库,之后DBA要求旧连接池必须立即被清空, 那么问题来了:dotnet能不能立即清空连接池? 注意我用得是清空,而不是释放连接。
如果有同学不知道DBA做这个要求的目的,那我啰嗦一下:
应用程序不再使用旧连接时,理论上你的连接池要被完全清空,因为单纯的释放连接,只会让连接池中的Connection处于Sleep状态,依旧维持了短时间的物理连接,这个短时间其实是不必要的占用,影响了旧连接数据库的吞吐量。
本文共计1539个文字,预计阅读时间需要7分钟。
目录+前置知识背景
1..NET数据访问连接池背景
2..NET与数据访问连接池的体现
3..NET如何形成数据访问连接池
4.连接池中的连接何时被移除
.NET如何清空连接池一般我们的项目中“目录
- 前置知识背景
- 1. .NET数据库连接池的背景
- 2. .NET 数据库连接池的表现
- 3. .NET是如何形成数据库连接池的?
- 4. 连接池中的连接什么时候被移除?
- .NET 如何清空连接池?
一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配置拿到的是Connection对象。
DBA能在对业务方无侵入的情况下,给业务方切换备份数据库,之后DBA要求旧连接池必须立即被清空, 那么问题来了:dotnet能不能立即清空连接池? 注意我用得是清空,而不是释放连接。
如果有同学不知道DBA做这个要求的目的,那我啰嗦一下:
应用程序不再使用旧连接时,理论上你的连接池要被完全清空,因为单纯的释放连接,只会让连接池中的Connection处于Sleep状态,依旧维持了短时间的物理连接,这个短时间其实是不必要的占用,影响了旧连接数据库的吞吐量。

