Sql Server缓冲池、连接池详解
缓存池
缓存机制是指将经常访问的数据或查询结果保存在内存中,以提高查询性能和整体系统响应速度
缓冲池 (Buffer Pool):
SQL Server 中最大的一块内存区域,用于存储从磁盘读取的页,以减少对磁盘的直接访问
缓冲池中的页包括数据页、索引页、系统表页等
计划缓存 (Plan Cache):
将执行过的查询计划缓存在计划缓存中,以便重复使用,减少查询解析和优化的开销
查询计划是查询优化器生成的执行查询的步骤
数据缓存 (Data Cache):
数据缓存是缓冲池的一部分,专门用于缓存数据页
当查询访问表中的数据时,SQL Server 会首先检查数据缓存,如果数据已经在缓存中,则直接返回,否则从磁盘读取并缓存
一、查看缓存使用情况
截图如下:
二、清理缓存
三、监控缓存命中率
截图如下:
连接池
一、查看当前活动的连接数
截图如下:
二、查看当前连接的具体信息
截图如下:
三、查看连接池信息
截图如下:
四、查看每个连接的详细信息
截图如下:
五、查看用户连接数
截图如下:
彩蛋
重启Mysql不行,反而重启服务器才可以,考虑是否应用有死锁,导致应用在争夺资源
如果连接池信息满了,考虑如下方式重置资源池
重置资源配置调度:
通过KILL的方式来清空连接:
如果当前资源池的内存限制太低,可以增加这两个参数:
还可分配更多的资源给高优先级的任务:(调整工作负载组的配置,以确保高优先级任务获得更多资源)
最终还需监控和优化
监控资源使用情况:定期监控资源池的资源使用情况,确保配置合理
优化查询和索引:优化查询和索引,减少资源消耗
定期维护和清理:定期维护数据库,清理不必要的数据和索引,释放资源