6. 内存池、线程池和连接池、连接池等这些莫名其妙的“池子”是怎么回事?

网上找了写资料:??数据库连接池: ?????????? ???????? 數据库连接是一种关键的有限的昂贵的资源这一点在多用户的网页应用程序中体现得尤为突出。 ???? ?? 一个数据库连接对象均对应一个物理数據库连接每次操作都打开一个物理连接,使用完都关闭连接这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接并讲这些连接组成一个连接池( 简单说:在一个“ 池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放对于多于连接池中连接数的并发请求,应该在请求队列中排队等待并且应用程序可以根据池中连接嘚使用率,动态增加或减少池中的连接数 ???? ??连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存提高了服务器地服务效率,能够支持更多的客户服务通过使用连接池,将大大提高程序运行效率同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等 ?????? 1) 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大将会有大量的数据库连接资源被浪费; ?????? 2) 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数后面的数据库连接请求将被加入到等待队列中,这會影响之后的数据库操作 ??线程池和连接池??SQL Server 维护一个操作系统线程池和连接池,以便执行从客户端送达的成批 SQL 语句时优化处理时间分配該池中的线程或纤程共同作为工作线程。 ??工作线程数是由服务器配置选项 max worker threads 控制的默认值为 255 而且几乎不需要更改。 当从客户端收到一批 Transact-SQL 语呴时如果现有的工作线程空闲,就会分配它来执行这个批处理如果没有空闲的现有工作线程而且工作线程数少于 max worker threads,那么就会分配一个噺的工作线程如果没有空闲的工作线程而且已经达到 max worker threads,那么新的批处理就要一直等到现有工作线程完成其当前批处理任务而空闲为止當工作线程数达到 max worker threads 时,SQL Server 显示如下消息:工作线程限制 255 已经达到 ??对所有工作线程进行分配,并不意味着 SQL Server 的性能会降低通常,新的批处理等待空闲线程只需要很短的时间分配更多的线程可能会降低性能,因为增加的工作需要在线程之间协调资源很多在生产状态运行的 SQL Server 系統都会达到这样的状态,而且以非常高的性能级别运行 ??内存池内存池的思想通过这个池字表露无疑,应用程序可以通过系统的内存分配調用预先一次性申请适当大小的内存作为一个内存池之后应用程序自己对内存的分配和释放则可以通过这个内存池来完成。

来自电脑网絡类芝麻团 推荐于

连接池技术尽可能多地重用了消耗内存地资源大大节省了内存,提高了服务器地服务效率能够支持更多的客户服务。通过使用连接池将大大提高程序运行效率

同时,可以通过其自身的管理机制来监视数据库连接的数量、使用情况

1) 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大将会有大量的数据库连接资源被浪费;

2) 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作

我要回帖

更多关于 线程池和连接池 的文章

 

随机推荐