oracle 基础知识(七)----动态性能视图
一,动态性能视图介绍
动态性能视图属于数据字典,系统管理员用户 SYS 可以访问它们。在数据库打开和使用时不断进行更新,而且它们的内容主要与性能有关。虽然这些视图很像普通的数据库表,但它们不允许用户直接进行修改。这些视图提供内部磁盘结构和内存结构方面的数据。用户可以对这些视图进行查询,以便对系统进行管理与优化。当数据库管理员启动某个例程时,数据库会自动建立动态性能视图;当停止某个例程时,数据库又会自动删除这些动态性能视图。
我们能再动态视图中掌握:
数据库运行相关的性能数据,如内存的使用量、磁盘排序发生的机率等等。
取得与磁盘和内存结构相关的其他信息。
二,状态转换时的动态性能视图
(1)数据库处于“NOMOUNT”状态。数据库启动例程时,Oracle数据库会打开参数文件,分配SGA内存并启动后台进程。此时,其实数据库还没有挂栽。此时,动态性呢视图收集的信息来源只有是SGA,而不会从控制文件中收集相关的信息。所以,动态性能视图的数量要少得多。
(2)当数据库处于MOUNT状态时,数据库会根据初始化参数打开所有的控制文件。所以,当例程处于Mount状态时,动态性能视图其收集到的信息就要第一个状态多的多。因为此时,动态性能视图还会去收集控制文件的相关信息。不过,此时动态性能视图所收集到的资料还不是最全的。
(3)当用户打开数据库时,Oracle系统会根据控制文件所记载的信息去打开所有的数据库文件以及重做日志。此时,数据库管理员除了可以从 SGA和控制文件中获取信息的动态性能视图外,还可能访问与Oracle数据库性能相关的动态性能视图,如会话等待时间等视图。另外需要注意一点,就是只有在这个状态时,我们才能够访问数据库的数据字典视图。
三,V$, V_$, GV$, X$ 视图说明
1,说明
GV$:全局视图,针对多个实例环境
V$:针对某个实例的视图。
X$:是GV$视图的数据来源,Oracle内部表。
--v$ 是v_$的同义词,v_$是基于真正的视图v$,而真正的v$视图是在gv$的基础上限制inst_id得到;
--gv$是gv_$的同义词,gv_$基于真正的视图gv$,而真正的gv$视图基于系统表X$。
2,X$表
X$表包含了特定实例的各方面的信息,是Oracle数据库的运行基础,如当前的配置信息,连接到实例的会话,以及丰富而有价值的性能信息。 X$表并不是驻留在数据库文件的永久表或临时表。X$表仅仅驻留在内存中,当实例启动时,由Oracle应用程序动态创建,在内存中进行实时的维护。 它们中的大多数至少需要装载或已经打开的数据库。X$表为SYS用户所拥有,并且是只读的。 不能进行DML(更新,插入,删除)。X$表对数据库来说至关重要,所以Oracle不允许SYSDBA之外的用户直接访问,显示授权不被允许。
查询:
select * from v$fixed_table where rownum<5;

查询X表的个数
SQL> select count(*) from v$fixed_table where name like 'X$%'; COUNT(*)
----------
985 SQL> select * from bootstrap$; ---从bootstarop中查看X$表,里面记录了数据库启动的基本及驱动信息。 LINE# OBJ#
---------- ----------
SQL_TEXT
--------------------------------------------------------------------------------
-1 -1
8.0.0.0.0 0 0
CREATE ROLLBACK SEGMENT SYSTEM STORAGE ( INITIAL 112K NEXT 56K MINEXTENTS 1 MAX
EXTENTS 32765 OBJNO 0 EXTENTS (FILE 1 BLOCK 128)) 20 20
CREATE TABLE ICOL$("OBJ#" NUMBER NOT NULL,"BO#" NUMBER NOT NULL,"COL#" NUMBER NO LINE# OBJ#
---------- ----------
SQL_TEXT
--------------------------------------------------------------------------------
T NULL,"POS#" NUMBER NOT NULL,..........
3, V$ 视图
动态性能视图由前缀V_$标识。这些视图的公用同义词具有前缀V$。数据库管理员或用户应该只访问V$对象,而不是访问V_$对象。动态性能视图由企业管理器和Oracle Trace 使用,Oracle Trace 是访问系统性能信息的主要界面。一旦实例启动,从内存读取数据的 V$视图就可以访问
查询视图:
select * from DBA_SYNONYMS where rownum<5;
SQL> select count(*) from v$fixed_table where name like 'V$%'; COUNT(*)
----------
552
4, GV$ 视图
从Oracle8开始,GV$视图开始被引入, GV$(Global V$,全局V$)。除了一些特例以外(如:V$CACHE_LOCK、V$LOCK_ACTIVITY、V$LOCKS_WITH_COLLISIONS和V$ROLLNAME),每个V$视图都有一个对应的GV$视图存在。在并行服务器环境下,可查询GV$视图从所有限定实例中检索V$视图的信息。V$视图和GV$视图是相同的,V$比GV$只是少了INST_ID字段。INST_ID 列显示从其获得相关的V$视图信息的实例号。INST_ID 列可用作一个从可得到的实例集检索V$信息的过滤器。
查询GV视图:
通过v$fixed_table 查询GV$视图信息:
SQL> select count(*) from v$fixed_table where name like 'GV$%'; COUNT(*)
----------
523
5, G_$是全局视图,多由x$表得来
查看
select * from v$fixed_view_definition where instr(view_name,'$')=3 and rownum<3;

select * from DBA_SYNONYMS where synonym_name like 'GV%' and rownum<5;

四,常用的动态性能视图
(1)v$sysstat
--整个系统的统计信息展示系统状态。

(2)v$sesstat
–-每个会话的统计信息
(3)v$sql & v$sql_plan
(4)v$sqltext & v$sqlarea
(5)v$session
(6)v$session_wait & v$session_event
当前活动的会话正在等待的事件情况或者每个会话对每个事件的等待情况
(7)v$process
作用: v$process视图包含当前系统oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。

(8)v$lock & v$locked_object
(9)v$filestat
(10)v$session_longops
(11)v$latch$ v$latch_children
(12)v$db_object_cache
(13)v$open_cursor
(14)v$parameter & v$system_parameter
(15)v$rollstat
V$ROLLNAME显示处于ONLINE状态的UNDO段,V$ROLLSTAT显示UNDO段的统计信息。通过二者执行连接查询,以显示UNDO的详细统计信息
select a.name,b.xacts from V$rollname a,V$rollstat b where a.usn=b.usn; 
(16)v$rowcache
shared pool / Library cache
(17)v$segstat & v$segment_statistics
(18)v$system_event
(19)v$undostat
(20)v$waitstat
(21)V$TABLESPACE
显示表空间信息

(22)V$THREAD
取得重做线程的详细信息,当使用RAC结构时,每个例程都对应一个重做线程,并且每个重做线程包含独立的重做日志组。
select thread#,status,groups,instance,sequence# from v$thread ;

(23)V$LOCK
显示锁信息,通过与V$SESSION进行连接查询,可以显示占有锁的会话,以及等待锁的会话。
(24)V$LOCKED_OBJECT
显示被加锁的数据库对象。通过与DBA_OBJECTS进行连接查询,以显示具体的对象名及执行加锁操作的ORACLE用户名。
例:
select a.oracle_username,b.owner||'.'||b.object_name object
from V$locked_object a,dba_objects b
where a.object_id=b.object_id;
(25)V$FIXED_TABLE
该动态性能视图用于列出所有可用的动态性能视图和动态性能表。
select * from v$fixed_table ;

(26)V$INSTANCE
获取当前例程的详细信息。
select instance_name,host_name,status from V$instance;

(27)V$SGA---V$SGAINFO
显示SGA主要组成部分和更详细的信息


(28)V$VERSION
获取版本
(29)V$OPTION
显示已经安装的ORACLE选项
select * from v$option;

(30)V$BGPROCESS
显示后台进程详细信息
select name,description from V$bgprocess 
(31)$DATABASE
取得当前数据库的详细信息

(32)V$DATAFILE
select file#,name,bytes from v$datafile ;

(33)V$DBFILE
取得数据文件编号及名称
select * from v$dbfile ;

(34)V$LOGFILE
显示重做日志成员的信息
select group#,member from V$logfile;
(35)V$LOG
select group#,thread#,sequence#,bytes,members,status from V$log;

...等等
oracle 基础知识(七)----动态性能视图的更多相关文章
- oracle数据字典和动态性能视图
数据字典和动态性能视图数据字典是oracle数据库中重要的组成部分,提高了数据库的一些系统信息.(静态信息)动态性能视图记载了例程启动后的信息.(动态信息) 数据字典记录了数据的系统信息,是只读表和动 ...
- 十三、oracle 数据字典和动态性能视图
一.概念数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息.动态性能视图记载了例程启动后的相关信息. 二.数据字典1).数据字典记录了数据库的系统信息,它是只读表和视图的集合 ...
- oracle 数据字典和动态性能视图
一.概念数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息.动态性能视图记载了例程启动后的相关信息. 二.数据字典1).数据字典记录了数据库的系统信息,它是只读表和视图的集合 ...
- oracle之二数据字典表和动态性能视图
数据字典表和动态性能视图 Oracle提供了大量的内部表,它们记录了数据库对象的更改和修正.可以将这些内部表划分为两种主要类型:静态的数据字典表和动态的性能表.这些内部表是由oracle维护的,可以说 ...
- Oracle基础知识汇总一
Oracle基础知识 以下内容为本人的学习笔记,如需要转载,请声明原文链接 https://www.cnblogs.com/lyh1024/p/16720759.html oracle工具: SQ ...
- 数据字典和动态性能视图<五>
数据字典和动态性能视图 介绍:数据字典是什么 数据字典是 oracle 数据库中最重要的组成部分,它提供了数据库的一些系统信息. 动态性能视图记载了例程启动后的相关信息. 数据字典 数据字典记录了 ...
- Oracle_高级功能(7) 数据字典视图和动态性能视图
oracle数据字典 1.概念数据字典是oracle数据库用来存储数据库结构信息的地方.数据字典是用来描述数据库数据的组织方式的,由表和视图组成.数据字典基表是在任何 Oracle 数据库中创建的第一 ...
- 图说Oracle基础知识(一)
本文主要对Oralce数据库操作的基础知识进行一下梳理,以便进行归纳总结.适用于未使用过Oracle数据库的读者,或需要学习Oracle数据库方面的基础知识.如有不足之处,还请指正. 关于SQL介绍的 ...
- 学习Spring必学的Java基础知识(2)----动态代理
Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的 ...
随机推荐
- LightOJ 1284 Lights inside 3D Grid (数学期望)
题意:在一个三维的空间,每个点都有一盏灯,开始全是关的.现在每次随机选两个点,把两个点之间的全部点,开关都按一遍,问k次过后开着的灯的期望数量: 析:很容易知道,如果一盏灯被按了奇数次,那么它肯定是开 ...
- URAL 1204. Idempotents (扩展欧几里得)
题目链接 题意 : 给你一个同余方程, x*x ≡ x (mod n),让你求出所有的小于n的x. 思路 : 先来看同余的概念 :给定一个正整数m,如果两个整数a和b满足a-b能被m整除,即m|(a ...
- Listview 利用Datapager进行分页
原文:http://lgm9128.blog.163.com/blog/static/421734292010513111851101/ <asp:ListView ID="ListV ...
- sqlServer2008技术内幕笔记总结(实用的sql方法总结)
over函数的使用: 1.可以实现基于什么求和,省去group by: select xingming,xingbie,COUNT(*) over() as '总人数' from jbxx_xuesh ...
- 去掉html标签方法
public static string CleanHtml(string strHtml) { strHtml = Regex.Replace(strHtml, @"(\<scrip ...
- 以太坊系列之十六:golang进行智能合约开发
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...
- F - ACboy needs your help again! (模拟)
ACboy was kidnapped!! he miss his mother very much and is very scare now.You can't image how dark th ...
- kali linux之edb--CrossFire缓冲区溢出
漏洞的罪恶根源------变量,数据与代码边界不清,开发人员对用户输入没做过滤,或者过滤不严 如这个脚本,写什么,显示什么,但是加上:,|,&&,后面加上系统命令,就执行命令了 缓冲区 ...
- 【转】C# String 与 Char[] 数组 相互转换
源地址:http://blog.csdn.net/razilfelix/article/details/52289663 string 转换成 Char[] string ss = "abc ...
- 命令行里打 cd 简直是浪费生命
简评:作为工程师,你在命令行下最常打的命令无非就是 cd 与 ls.这些年你浪费了多少时间? 作为一个程序员或者在 shell 中花费大量时间的人,你可能会经常以一种低效率的方式在目录中来回移动,特别 ...