Количество счетчиков производительности активных подключений к базе данных?

Мы используем класс OleDbConnection для соединения Oracle и SqlServer. В некоторых местах мы также используем SqlClient и Oracle.DataAccess.OracleConnection. Мне нужно знать, сколько активных соединений у наших серверов с помощью счетчика производительности.

Наш администратор баз данных обвиняет нас в том, что мы не закрываем соединения. Но мы уверены, что закрываем соединение (ставим соединение на C # с помощью).

0
задан 19 August 2016 в 19:00
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';

В случае, если соединения инициируются от разных клиентов, но от одного и того же имени приложения - вы можете фильтровать на основе ПРОГРАММЫ

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
0
ответ дан 5 December 2019 в 09:40

Теги

Похожие вопросы