【问题标题】:How to know the number of database connections如何知道数据库连接数
【发布时间】:2014-12-31 05:32:22
【问题描述】:

请注意,尽管它看起来非常相似,但这不是与此链接重复的问题: How to list active / open connections in Oracle?

我问的不是会话数,而是连接数。我知道我可以查询 v$session 视图,但我不知道那里使用了多少连接。如果有办法从中派生出来,请赐教。

编辑: 我在询问与数据库的物理数据库连接。

【问题讨论】:

  • 你的意思是最大允许连接吗?
  • 您认为会话和连接之间究竟有什么区别?
  • 不,我不是指允许的最大连接数。我的意思是当前建立的连接数。如果我的理解有误,请纠正我,但到目前为止我的理解是一个连接不一定代表一个会话。它可以是 0 甚至多于 1。这就是为什么我不能只依赖 v$session 视图中的记录数。

标签: oracle oracle11g


【解决方案1】:

有点混淆你的陈述I'm not asking about the number of sessions, but connections

在概念上两者是相同的。每个活动会话都将对应于与数据库的底层活动连接。

现在,如果您想知道最大允许连接限制,那么 Documentation

所有连接的最大连接数(系统和应用程序) 实例中的数据库 = 2048

要知道配置到你的数据库的允许会话,你可以查询v$parameter view like

SELECT name, value 
  FROM v$parameter
 WHERE name = 'sessions'

如果您想知道任何实例中的Active 会话Out of total 配置为允许,那么您可以使用Status 列查询v$session 视图

SELECT COUNT(*)
  FROM v$session
WHERE STATUS = 'ACTIVE'

您可能想参考这篇文章How to check the maximum number of allowed connections to an Oracle database?

【讨论】:

  • 如果我错了,请纠正我。我的理解是一个连接可能包含多个会话。这就是为什么我在这里假设 v$session 视图中的记录数不是描述连接数的准确数字。
  • 一般是1:1映射。有关更多信息,请查看本文asktom.oracle.com/pls/apex/…
  • 我刚刚从那个链接阅读了那篇文章。我看到有人问了我在这里遇到的同样的问题,但也没有明确的答案。无论如何,在阅读了那里大多数的精彩讨论后,我意识到这个问题与我面临的问题不太相关。我现在仍然保留这个问题。感谢您的回复。
  • 如果您正在寻找physical database connection,那么您可以检查系统中正在运行的进程。你是在 Linux/windows 系统上运行的吗?
  • 我在 Linux 上运行。专用和非专用都准确吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
相关资源
最近更新 更多