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的 ...
随机推荐
- HDU 3362 Fix (状压DP)
题意:题目给出n(n <= 18)个点的二维坐标,并说明某些点是被固定了的,其余则没固定,要求添加一些边,使得还没被固定的点变成固定的, 要求总长度最短. 析:由于这个 n 最大才是18,比较小 ...
- C# How To Read .xlsx Excel File With 3 Lines Of Code
Download Excel.zip - 9.7 KB Download ExcelDLL.zip - 3.7 KB Introduction We produce professional busi ...
- Python&Django学习系列之-激活管理界面
1.创建你个人的项目与APP 2.填写你的数据库名称与数据库类型,这里使用内置的sqllite3 3.修改setting文件 a.将'django.contrib.admin'加入setting的IN ...
- JVM调用类的main方法的过程
jvm先装载类,再链接类,再初始化类(以代码的文本顺序执行类变量初始化器.类静态初始化方法或接口的属性(field)初始化器),完成类的初始化后,才执行类的main方法.在链接过程中,可以静态链接(解 ...
- HTML5 Canvas核心技术图形动画与游戏开发 ((美)David Geary) 中文PDF扫描版
<html5 canvas核心技术:图形.动画与游戏开发>是html5 canvas领域的标杆之作,也是迄今为止该领域内容最为全面和深入的著作之一,是公认的权威经典.amazon五星级超级 ...
- DropDownList1.Items.Insert 与 DropDownList1.Items.Add 的区别
DropDownList1.Items.Insert 与 DropDownList1.Items.Add 的区别 dropwdownist1.items.insert 是可以添加在制定索引处的 而dr ...
- [.net 多线程]Semaphore信号量
信号量(Semaphore)是一种CLR中的内核同步对象.与标准的排他锁对象(Monitor,Mutex,SpinLock)不同的是,它不是一个排他的锁对象,它与SemaphoreSlim,Reade ...
- C# LINQ(7)
大部分的LINQ的关键字都说了,最后说一下排序吧. LINQ的是查询的利器. 那么查询就会有排序. 所有LINQ提供了两种简单的排序.倒序和默认排序. 关键字是: orderby ascending ...
- eclipse操作
1.手动添加组件源码 2.源码阅读技巧 选择类Ctrl+T(Quick Type Hierarchy),查看该类的继承关系: 选择方法Ctrl+Alt+H(Open Call Hierarchy),查 ...
- 基于redis的分布式锁的分析与实践
前言:在分布式环境中,我们经常使用锁来进行并发控制,锁可分为乐观锁和悲观锁,基于数据库版本戳的实现是乐观锁,基于redis或zookeeper的实现可认为是悲观锁了.乐观锁和悲观锁最根本的区别在于 ...