【问题标题】:Oracle system information query - Database instance levelOracle系统信息查询——数据库实例级
【发布时间】:2019-12-27 00:50:33
【问题描述】:

我正在编写一个性能/系统监控工具来增强我团队产品的负载测试,并且我正在尝试将数据库系统信息与结果包一起存储,但不知道如何编写查询以在 Oracle 中捕获它(我我是开发人员而不是 DBA)。

我已经按照我想要的方式为 SQL Server 工作了,但我需要为 Oracle 做同样的事情。下面是我在网上找到的一个查询,它是 SQL Server:

SELECT CONVERT(varchar(128),SERVERPROPERTY('ComputerNamePhysicalNetBIOS')) AS 'computerNamePhysicalNetBIOS', 
CONVERT(varchar(128),SERVERPROPERTY('MachineName')) AS 'machineName', 
CONVERT(varchar(128),SERVERPROPERTY('Edition')) AS 'edition', 
CONVERT(varchar(128),SERVERPROPERTY('ProductLevel')) AS 'productLevel', 
CONVERT(varchar(128),SERVERPROPERTY('ProductVersion')) AS 'productVersion', 
CONVERT(varchar(128),SERVERPROPERTY('BuildClrVersion')) AS 'buildClrVersion', 
CONVERT(INT,SERVERPROPERTY('ProcessID')) AS 'processID', 
CONVERT(INT,SERVERPROPERTY('EngineEdition')) AS 'engineEdition', 
CONVERT(INT,SERVERPROPERTY('HadrManagerStatus')) AS 'hadrManagerStatus', 
CONVERT(INT,SERVERPROPERTY('IsHadrEnabled')) AS 'hadrEnabled', 
CONVERT(INT,SERVERPROPERTY('IsAdvancedAnalyticsInstalled')) AS 'advancedAnalyticsInstalled', 
CONVERT(INT,SERVERPROPERTY('IsClustered')) AS 'clustered', 
CONVERT(INT,SERVERPROPERTY('IsPolybaseInstalled')) AS 'polybaseInstalled', 
CONVERT(INT,SERVERPROPERTY('IsXTPSupported')) AS 'xtpSupported', 
CONVERT(INT,SERVERPROPERTY('LCID')) AS 'lcid', 
CONVERT(varchar(128),SERVERPROPERTY('ResourceVersion')) AS 'resourceVersion', 
CONVERT(varchar(128),SERVERPROPERTY('ServerName')) AS 'serverName', 
CONVERT(varchar(128),APP_NAME() )AS 'appName', 
CONVERT(INT,DB_ID()) AS 'dbId', 
CONVERT(varchar(128),DB_NAME()) AS 'dbName'

我真的不希望上述查询与 Oracle 的版本之间存在一对一的列匹配,但总的来说,我如何才能从 Oracle 获得非常相似的信息?

【问题讨论】:

标签: sql oracle metadata


【解决方案1】:

我真的不希望上述内容之间存在一对一的列匹配 查询和Oracle的版本,但总的来说,我怎么能得到非常相似 来自 Oracle 的信息?

大部分内容,如果它存在于 Oracle 数据库中,将可以通过 Oracle 数据库中的 V$ 视图访问。为了帮助您入门,这里有一些与回答您的问题最相关的内容:

select * from v$instance;

select * from v$version;

select * from v$sql_feature;

select * from v$license;

select * from v$option;

如果您想获得完整的 V$ 视图列表以便更好地环顾四周,

select * from dict where table_name like 'V$%';

【讨论】:

  • 这就是我要找的。感谢您的快速回复。
【解决方案2】:

其中一些是 MSSQL 特有的,在 Oracle 中没有意义。但是您可以使用userenv 命名空间通过sys_context() 获得其中的许多。

例如,获取数据库名称:

select sys_context('userenv', 'DB_NAME') as db_name
from dual;

【讨论】:

    猜你喜欢
    • 2018-05-05
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2018-08-13
    • 2014-02-09
    • 2010-09-08
    • 1970-01-01
    • 2019-07-30
    相关资源
    最近更新 更多