如何用plsql查看数据库连接

如何用plsql查看数据库连接,第1张

1)点击Net Configuration Assistant

2) 在d出的对话框中选择本地Net服务名配置,点下一步

3) 在服务名配置对话框中选择添加,点下一步

4)在如下对话框中填写要访问的oralce数据库的服务名,该服务名可以通过oralce登录用户名进入环境,在.cshrc中,环境变量ORACLE_SID对应的值便是这个服务名,也可以在oracle用户环境下执行grep | env ORACLE_SID查找。

点击下一步

5)选择TCP协议,点下一步

6)主机名中填写要访问的oracle数据库服务器,使用标准端口号1521,点下一步

7)选中“是,进行测试”,点下一步

8) 点更改登录,填写要访问的数据库用户名和密码,确保其正确。此处主要是验证前面配置是否正确,如正确这里的测试就可以成功。

如果不正确请检查服务名、ip地址、用户名、密码中是否有写错,并改之,就可以成功了。

测试成功后点下一步

9)在下图中填写网络服务名,此处的网络服务名可以随意取名,点下一步,后面配置数据源的时候用的就是这个网络服务名

方法一用起来有点小复杂,不过可以了解数据库的配置步骤,方法二相对来说简单很多

找到本机oracle数据库安装的如下路径,如:

F:\app\Administrator\product\11.1.0\client_1\network\admin,在该路径下有个文件tnsnames.ora,打开文件会发现里面有很多连接配置,直接拷贝一个修改如下红色字

SYSDB_102 = //对应的就是上面方法一提到的网络服务名

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.41.24.102)(PORT = 1521)) //访问数据库的ip

)

(CONNECT_DATA =

(SERVICE_NAME = sysdb) //数据库服务名

)

)

当配置好后,就可以用PLSQL访问数据库了

select * from sys.sysprocesses --查进程,更多介绍,请复制表名百度一下,更详细正规的介绍。

select * from sys.sysusers --查用户相关信息

Select * from sys.dm_exec_connections --此命令可以看到连接情况

--此命令可以看到有多少会话,一个连接可以有多个会话

select session_id,status,login_name,login_time,* from sys.dm_exec_sessions

Select sql_handle,* from sys.dm_exec_requests --查请求的ID,请求的状态。如:

后台。请求是后台线程,例如资源监视器或死锁监视器。

正在运行。请求正在运行。

可运行。请求正在运行,由于仲裁不足,因此要临时进行妥善安排。

睡眠。没有要做的工作。

挂起。请求正在等待工作线程选取。

已挂起。请求正在等待某个事件。

最终我们根据自己的需要将上面的表选择需要的表进行连接查询出想要的结果。

select DB_NAME(database_id) dbname,login_name,t1.session_id,

t1.request_id,t2.status,t1.start_time, host_name

from sys.dm_exec_requests t1

inner join sys.dm_exec_sessions t2

on t1.session_id=t2.session_id

1.通过管理工具

开始->管理工具->性能(或者是运行里面输入

mmc)然后通过添加计数器添加

SQL

的常用统计

然后在下面列出的项目里面选择用户连接就可以时时查询到数据库的连接数了。不过此方法的话需要有访问那台计算机的权限,就是要通过Windows账户登陆进去才可以添加此计数器。

2.通过系统表查询

SELECT * FROM

[Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT

[DBID]

FROM

[Master].[dbo].[SYSDATABASES]

WHERE

NAME='DBName'

)

DBName

是需要查看的数据库,然后查询出来的行数,就是当前的连接数。不过里面还有一些别的状态可以做参考用。

例如:连到master这个数据库写如下语句

select * from sysprocesses where dbid in (select dbid from sysdatabases where name='MyDatabase')

将所有连接MyDatabase这个数据库的连接记录都求出来。

sysprocesses这个表记录所以连接到SQL

SERVER数据库的连接。

3.通过系统的存储过程来查找

SP_WHO 'UserName'

UserName

是当然登陆Sql的用户名,一般程序里面都会使用一个UserName来登陆SQL这样通过这个用户名就能查看到此用户名登陆之后占用的连接了。

如果不写UserName,那么返回的就是所有的连接。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9975591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存