数据库连接池查看方法:
一、Oracle:
--1、查看当前数据库建立的会话情况:
select sid,serial#,username,program,machine,status from v$session;
--2、查询数据库当前进程的连接数:
select count(*) from v$process;
--3、修改数据库连接数(需重启生效)
alter system set processes=500 scope=spfile;
--4、查看数据库当前会话的连接数:
select count(*) from v$session;
--5、查看数据库的并发连接数:
select count(*) from v$session where status='ACTIVE';
--6、查询数据库允许的最大连接数
select value from v$parameter where name = 'processes';
--7、查看当前有哪些用户正在使用数据:
select osuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine from v$session a,v$sqlarea b where a.sql_address = b.address order by cpu_time/executions desc;
--8、查看共享池大小
select * from v$sgastat where name = 'free memory' and pool = 'shared pool';
二、Mysql:
mysql默认最大连接数最大值为:151
1.查询语句:
?show variables like '%connections%';
show variables like '%max_connections%';
2.修改默认连接数
语句:set GLOBAL max_connections=50;
3.查看当前和数据库建立的连接数:
语句:show status like 'Threads%';
三个参数,一个是treads_cached这个是缓冲池中的线程个数。还有一个是treads_connected这个是连接中的线程数。第三个是Threads_created,它的含义是已经创建的线程数。在并发数低的情况下,一般Threads_created参数是treads_cached和treads_connected参数之和。当并发数高的情况下,Threads_created就会暴增,这个时候就需要考虑thread_cache_size来设置缓冲池的大小了。
三、MSSQL:
打开 SQL Server Management Studio(SSMS),连接到 SQL Server 实例。
在 SSMS 的“对象资源管理器”窗格中,展开服务器节点。
点击“管理”文件夹,然后选择“活动连接”。
在“活动连接”窗口中,您可以看到当前连接到 SQL Server 实例的连接数,以及每个连接的详细信息,如登录名、应用程序名称、客户端主机名等。 另外,您也可以使用以下 SQL 查询语句来获取当前连接数:
SELECT COUNT(*) as '当前连接数' FROM sys.dm_exec_sessions;---获取当前目前系统连接数明细汇总
select hostname 主机名,count() 连接数量 from master.dbo.sysprocesses group by hostname order by count() desc ---获取当前目前系统连接数明细
SELECT @@MAX_CONNECTIONS ---获取默认系统连接数
一般默认值100,0为无限制。
我们在访问数据库的时候是使用的ado.net技术,微软提供的这套技术在底层默认开启了数据库连接池,也就是Pooling默认为true。那么默认连接池里的最大连接数据是多少呢?这就使Max Pool Size参数。而Min Pool Size就表示连接池中最小的连接数量,Connect Timeout表示一次连接请求最长的等待时间。
数据库连接池的大概工作原理如下:
当我们使用连接池的时候,我们每次创建SqlConnection的时候,.net都会从连接池中找出空闲的连接供我们使用,如果没找到的话就观察池子里的连接数量是否超出了最大连接数的设置,没超出的话就新开初始化个连接返给我们,超出的话就让我们等待直到有空闲的连接返回到池子里,如果我们等待超期了就直接返回异常了。还有,当我们用完连接调用S起来Connection的Close方法后,.net就会自动回收连接到池子里了。
版权归原作者 shenpq2008 所有, 如有侵权,请联系我们删除。