热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

v$开头的就一定是视图吗?

动态性能视图oracle内存在运行中时刻都在变化,这些变化的数据寄存于动态性能表(内存表,固定表)中,随着数据库启动而建立,随数据库运行而增加内容,动态性能表也过于复杂,oracle在此基础之上又建立了视图和同义词,用于DBA判断系统的性能状态信息这类

动态性能视图 oracle内存在运行中时刻都在变化,这些变化的数据寄存于动态性能表(内存表,固定表)中,随着数据库启动而建立,随数据库运行而增加内容,动态性能表也过于复杂,oracle在此基础之上又建立了视图和同义词,用于DBA判断系统的性能状态信息 这类

动态性能视图

oracle内存在运行中时刻都在变化,这些变化的数据寄存于动态性能表(内存表,固定表)中,随着数据库启动而建立,随数据库运行而增加内容,动态性能表也过于复杂,oracle在此基础之上又建立了视图和同义词,用于DBA判断系统的性能状态信息

这类视图和同义词我们称之为动态性能视图,它存储的是时刻改变的数据

select * from v$FIXED_TABLE

在oracle数据库中还维护与数据实例的操作和性能相关的动态数据集。这些动态性能视图建立在通过数据库服务器内的内存结构构建的虚拟表基础上。也就是说,它们不是驻留在数据库中的常规表。因此,其中的某些视图可以在装载或打开数据库之前显示数据。

动态性能视图包括关于以下内容的信息:

· 会话 · 文件状态 · 作业和任务的进度 · · 备份状态 ·内存使用和分配 ·系统和会话参数 ·SQL 执行 ·统计信息和度量

注:DICT 和 DICT_COLUMNS 视图也包含这些动态性能视图的名称。

某些动态视图包含的数据不一定适用于实例或数据库的所有状态。例如,如果刚刚启动一个实例,但未装载数据库,则可以通过查询v$BGPROCESS 查看正在运行的后台进程的列表。但不能通过查询v$DATAFILE查看数据库数据文件的状态,因为要由进行装载的数据库读取控制文件后才能找出数据库关联的数据文件。

· 这些视图由SYS用户拥有。

· 不同时间可以使用不同视图:

---- 实例已启动

---- 数据库已装载

---- 数据库已打开

· 通过查询V$FIXED_TABLE 可查看所有视图名称

· 这些视图通常又称为“v$视图”

· 由于数据是动态的,因此这些视图不保证读取一致性

\

v$开头的就一定是视图吗?<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjwvcD4KPHA+otkg0tRWJFBBUkFNRVRFUiDOqsD9o6yy6b+00rvPwtXiuPbK0828tcS7+bHtysfKssO0o6zO0sPHwPvTw2RibXNfbWV0YWRhdGEuZ2V0X2RkbCgpo6zTw8v8u/HIoVYkUEFSQU1FVEVSILXEtqjS5aOsxMfDtNDo0qrWqrXAViRQQVJBTUVURVIgtcTA4NDNvLAgb3duZXIgo6zO0sPH08PI58/Cw/zB7rLp0a+1w7W9wODQzbywb3duZXKhozwvcD4KPHA+U1lTQE9SQ0wmZ3Q7Q09MIE9CSkVDVF9OQU1FIEZPUiBBMjA8YnI+ClNZU0BPUkNMJmd0O0NPTCBPQkpFQ1RfVFlQRSBGT1IgQTIwPGJyPgpTWVNAT1JDTCZndDtDT0wgT1dORVIgRk9SIEEyMDxicj4KU1lTQE9SQ0wmZ3Q7c2VsZWN0IG9iamVjdF9uYW1lLG9iamVjdF90eXBlLG93bmVyIGZyb20gYWxsX29iamVjdHMgd2hlcmUgb2JqZWN0X25hbWU9dXBwZXIo"v$parameter');


OBJECT_NAME OBJECT_TYPE OWNER
-------------------- -------------------- --------------------
V$PARAMETER SYNONYM PUBLIC


SYS@ORCL>select dbms_metadata.get_ddl(upper('SYNONYM'),upper('V$PARAMETER'),upper('PUBLIC')) from dual;


DBMS_METADATA.GET_DDL(UPPER('S
--------------------------------------------------------------------------------


CREATE OR REPLACE PUBLIC SYNONYM "V$PARAMETER" FOR "SYS"."V_$PARAMETER"

② 通过这一步我们会发现 V$PARAMETER 其实是V_$PARAMETER 的同义词,

SYS@ORCL>select object_name,object_type,owner from all_objects where object_name=upper('v_$parameter');


OBJECT_NAME OBJECT_TYPE OWNER
-------------------- -------------------- --------------------
V_$PARAMETER VIEW SYS


SYS@ORCL>select dbms_metadata.get_ddl (upper('VIEW'),upper('V_$PARAMETER'),upper('SYS')) from dual;



DBMS_METADATA.GET_DDL(UPPER('V
--------------------------------------------------------------------------------


CREATE OR REPLACE FORCE VIEW "SYS"."V_$PARAMETER" ("NUM", "NAME", "TYPE", "VA

......

......from v$parameter

③ 此时就懵了,怎么又回到了 v$parameter 了,如果我们再次get_ddl ,那么就又回到了第一步了,那一定是不对的。我们看一下v_$parameter 是一个视图,那么v$parameter 也有可能是一个固定视图,我们在固定视图定义视图中查询一下。

SYS@ORCL>select view_definition from v$fixed_view_definition where view_name=upper('v$parameter');


VIEW_DEFINITION
--------------------------------------------------------------------------------
select NUM , NAME , TYPE , VALUE , DISPLAY_VALUE, ISDEFAULT , ISSES_MODIFIABLE
, ISSYS_MODIFIABLE , ISINSTANCE_MODIFIABLE, ISMODIFIED , ISADJUSTED , ISDEPRECAT
ED, DESCRIPTION, UPDATE_COMMENT, HASH from GV$PARAMETER where inst_id = USERENV
('Instance')


④ 果然是固定视图,这个固定视图也是根据固定视图所定义的,我们再次查看 GV$parameter 这个固定视图。

SYS@ORCL>select view_definition from v$fixed_view_definition where view_name=upper('gv$parameter');


VIEW_DEFINITION
--------------------------------------------------------------------------------
select x.inst_id,x.indx&#43;1,ksppinm,ksppity,ksppstvl, ksppstdvl, ksppstdf, decode
(bitand(ksppiflg/256,1),1,'TRUE','FALSE'), decode(bitand(ksppiflg/65536,3),1,'I
MMEDIATE',2,'DEFERRED', 3,'IMMEDIATE','FALSE'),
decode(bitand(ksppiflg,4),4,'FALSE', decod
e(bitand(ksppiflg/65536,3), 0, 'FALSE', 'TRUE')), decode(bitand(ksppstvf,7),
1,'MODIFIED',4,'SYSTEM_MOD','FALSE'), decode(bitand(ksppstvf,2),2,'TRUE','FALSE
'), decode(bitand(ksppilrmflg/64, 1), 1, 'TRUE', 'FALSE'), ksppdesc, ksppstcmn
t, ksppihash from x$ksppi x, x$ksppcv y where (x.indx = y.indx) and ((translat
e(ksppinm,'_','#') not like '##%') and ((translate(ksppinm,'_','#') not like
'#%') or (ksppstdf = 'FALSE') or (bitand(ksppstvf,5) > 0)))




SYS@ORCL>

⑤ 看到 GV$PARAMETER 的基表,终于知道动态性能视图的来龙去脉了。

总结:

-- 在非sys 用户下查看的动态性能视图均为同义词

-- “动态性能视图” 的出处:

X$开头 oracle 的基表 ----> gv$ 开头的 固定视图 -----> v$ 开头的固定视图 ----> v_$ 开头的视图 -----> v$开头的同义词


推荐阅读
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
  • 本文详细探讨了在服务器上运行的PostgreSQL数据库出现'内存不足'错误的具体情况,并提供了一系列有效的解决策略。通过本文,读者将能够更好地理解这一常见问题及其背后的原理。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 为何我选择了华为云GaussDB数据库
    本文分享了作者选择华为云GaussDB数据库的理由,详细介绍了GaussDB(for MySQL)的技术特性和优势,以及它在金融和互联网行业的应用场景。 ... [详细]
  • MySQL锁机制详解
    本文深入探讨了MySQL中的锁机制,包括表级锁、行级锁以及元数据锁,通过实例详细解释了各种锁的工作原理及其应用场景。同时,文章还介绍了如何通过锁来优化数据库性能,避免常见的并发问题。 ... [详细]
  • 深入解析Android中的SQLite数据库使用
    本文详细介绍了如何在Android应用中使用SQLite数据库进行数据存储。通过自定义类继承SQLiteOpenHelper,实现数据库的创建与版本管理,并提供了具体的学生信息管理示例代码。 ... [详细]
  • 探讨如何通过SQL查询将来自多个表的多行信息整合到同一行中展示,特别适用于需要汇总特定商品所有相关信息的场景。 ... [详细]
  • 本文旨在详细介绍如何在PL/SQL环境中调试Oracle数据库中的触发器。虽然触发器能够实现某些复杂的功能,但其使用可能增加系统的维护难度。因此,本文不仅提供技术指导,还讨论了触发器使用的利弊。 ... [详细]
  • Mac下 运行Win7虚拟机内SQL Server 2008 Management Studio 如何访问外接移动硬盘 ... [详细]
  • 本文将深入探讨如何使用 SQLAlchemy 在数据库模型中定义和操作不同类型的表间关系,包括一对一、一对多及多对多的关系。 ... [详细]
  • 探讨HTML中的DIV样式难题
    本文深入分析了HTML中常见的DIV样式问题,并提供了有效的解决策略。适合所有对Web前端开发感兴趣的读者。 ... [详细]
  • 迎接云数据库新时代:程序员如何应对变革?
    在数据无处不在的时代,数据库成为了管理和处理数据的核心工具。从早期的信息记录方式到现代的云数据库,数据库技术经历了巨大的变革。本文将探讨云数据库的特点及其对程序员的影响。 ... [详细]
  • 本文详细列举了软件开发中常见的功能测试要点,涵盖输入框、搜索、添加/修改、删除、文件上传下载等多个方面,旨在帮助测试人员全面覆盖测试需求,确保软件质量。 ... [详细]
  • 本文介绍了用于监控数据库运行状态的SQL查询,包括重做日志切换频率及PGA和SGA内存使用情况的检查方法。 ... [详细]
author-avatar
mobiledu2502875993
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有