活动数据库连接性能计数器的数量?

活动数据库连接性能计数器的数量?

我们正在使用OleDb连接类来连接 Oracle 和 SqlServer。在某些地方,我们还使用 SqlClient 和 Oracle.DataAccess.OracleConnection。我需要使用性能计数器了解我们的服务器有多少个活动连接。

我们的 DBA 指责我们没有关闭连接。但我们确信我们正在关闭连接(我们正在使用 C# 建立连接)。

答案1

对于 Oracle,您可以使用 V$SESSION 视图
https://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_2088.htm#REFRN30223

像这样:

select LOGON_TIME, OSUSER, PROCESS, PROGRAM, MACHINE\
from V$SESSION \
where MACHINE = 'YOUR CLIENT HOSTNAME' and STATUS != 'KILLED';

如果连接由不同的客户端发起,但来自同一个应用程序名称 - 您可以根据 PROGRAM 进行过滤

WHERE regexp_like(PROGRAM,'Your Program Name','i');

或者你可以根据 netstat 输出执行此操作。
像这样

netstat -anp | grep ":1521" | grep 'ESTABLISHED' | grep 'Your CLIENT IP' | wc -l

基于 netstat 的类似技术可以应用于 SQL Server

netstat -ano | find /I ":1433" | find /I "ESTABLISHED" | find /I "Your client IP" /c

相关内容