oracle中性能视图V$SYSSTAT小结
Oracle常用内置视图和动态性能表解读
O r a c l e9i动态性能(V$)视图说明本节介绍动态性能视图。
这些视图一般作为V$视图引用。
本节包括下列内容:动态性能视图。
视图说明。
C.1动态性能视图Oracle服务器包括一组基础视图,这些视图由服务器维护,系统管理员用户SYS可以访问它们。
这些视图被称为动态性能视图,因为它们在数据库打开和使用时不断进行更新,而且它们的内容主要与性能有关。
虽然这些视图很像普通的数据库表,但它们不允许用户直接进行修改。
这些视图提供内部磁盘结构和内存结构方面的数据。
用户可以对这些视图进行查询,以便对系统进行管理与优化。
文件CATALOG.SQL包含这些视图的定义以及公用同义词。
必须运行CATALOG.SQL创建这些视图及同义词。
C.1.1V$视图动态性能视图由前缀V_$标识。
这些视图的公用同义词具有前缀V$。
数据库管理员或用户应该只访问V$对象,而不是访问V_$对象。
动态性能视图由企业管理器和Oracle Trace使用,Oracle Trace是访问系统性能信息的主要界面。
建议:一旦实例启动,从内存读取数据的V$视图就可以访问了。
从磁盘读取数据的视图要求数据库已经安装好了。
警告:给出动态性能视图的有关信息只是为了系统的完整性和对系统进行管理。
公司并不承诺以后也支持这些视图。
C.1.2GV$视图在Oracle中,还有一种补充类型的固定视图。
即GV$(Global V$,全局V$)固定视图。
对于本章介绍的每种V$视图(除V$CACHE_LOCK、V$LOCK_ACTIVITY、V$LOCKS_WITH_COLLISIONS和V$ROLLNAME外),都存在一个GV$视图。
在并行服务器环境下,可查询GV$视图从所有限定实例中检索V$视图的信息。
除V$信息外,每个GV$视图拥有一个附加的名为INST_ID的整型列。
INST_ID列显示从其获得相关的V$视图信息的实例号。
INST_ID列可用作一个从可得到的实例集检索V$信息的过滤器。
oracle性能分析报告
Oracle性能分析报告1. 引言Oracle是一种高效的关系数据库管理系统,但在使用过程中可能会遇到性能问题。
本文将介绍如何通过分析Oracle性能来识别并解决潜在的问题。
2. 数据收集要进行性能分析,首先需要收集相关数据。
以下是一些常用的数据收集方法:- 监视系统参数:使用Oracle自带的工具,如AWR报告和ASH报告,可以监视系统参数的变化和性能指标。
- 分析SQL语句:通过跟踪和分析执行时间较长的SQL 语句,可以找到性能瓶颈所在。
- 监视数据库等待事件:通过查看等待事件的情况,可以了解系统的瓶颈。
- 监视资源利用率:监视CPU、内存和磁盘等资源的利用率,以了解系统的健康状况。
3. 数据分析收集到数据后,需要对数据进行分析以识别性能问题。
以下是一些常用的数据分析方法: - 比较不同时间段的性能指标:通过比较不同时间段的性能指标,可以发现系统的变化和趋势。
- 查找长时间运行的SQL语句:通过识别执行时间较长的SQL语句,可以找到潜在的性能问题。
- 分析等待事件:通过查看数据库等待事件的情况,可以确定系统的瓶颈所在。
- 分析资源利用率:通过监视资源利用率,可以确定系统是否存在资源瓶颈。
4. 性能优化通过数据分析,可以确定性能问题的原因。
以下是一些常用的性能优化方法:- 优化SQL查询:对执行时间较长的SQL语句进行优化,如增加索引、重写查询等。
- 调整系统参数:根据系统的需求,调整相关的系统参数,如缓冲区大小、并发连接数等。
- 优化存储结构:对表的存储结构进行优化,如分区、索引等。
- 调整硬件配置:根据系统的需求,调整硬件配置,如增加CPU、内存等。
5. 总结通过以上的步骤,可以对Oracle数据库的性能进行分析和优化。
收集相关数据、分析数据、识别问题、优化性能是一个迭代的过程,需要不断调整和优化。
只有对Oracle性能进行持续监测和优化,才能确保系统的高效运行。
以上是关于Oracle性能分析报告的步骤和方法的介绍。
Oracle常用数据字典与动态性能视图
查看索引被索引的字段
SQL>select * from user_ind_columns where index_name=upper('&index_name');
查看索引的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper('&index_name');
4、序列号
查看序列号,last_number是当前值
from dba_data_files
order by tablespace_name;
3、查看回滚段名称及大小
select segment_name, tablespace_name, r.status,
(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
查看某表的创建时间
SQL>select object_name,created from user_objects where object_name=upper('&table_name');
查看某表的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
Oracle_V$视图大全
Oracle_V$视图大全第一篇:Oracle_V$ 视图大全V$视图V$ACCESS 显示当前被锁定的数据库中的对象及正在访问他们的会话.V$ACTIVE_INSTANCES 为当前安装的数据库中出现的所有实例建立从实例名到实例号的映射.V$ACTIVE_SESS_POOL_MTH 所有活动的会话池资源分配方法.V$AQ 当前数据库中的队列的统计量.V$ARCHIVE 归档所需的重做日志文件中的信息.V$ARCHIVE_DEST 当前实例的所有归档日志目的文件及它们的当前值,模式,状态.V$ARCHIVE_PROCESSES 为一个实例提供不同的ARCH进程状态的信息.V$ARCHIVE_LOG 控制文件中的归档日志信息.V$BACKUP 所有联机数据文件的备份状态.V$BACKUP_ASYNC_IO 从控制文件中显示备份集的信息.V$BACKUP_CORRUPTION 从控制文件中显示数据文件备份中有关损坏的信息.V$BACKUP_DATAFILE 从控制文件中显示备份数据文件和备份控制文件的信息.V$BACKUP_DEVICE 显示关于支持备份设备的信息.V$BACKUP_PIECE 从控制文件中显示备份块的信息.V$BACKUP_REDOLOG 从控制文件中显示关于备份集中归档日志的信息.V$BACKUP_SET 从控制文件中显示备份集的信息.V$BACKUP_SYNC_IO 从控制文件中显示备份集的信息.V$BGPROCESS 描述后台进程.V$BH 是9I的实时应用集群视图.为系统全局区中的每一个缓冲区给出了状态和探查次数.V$BSP显示用在缓存中块服务器后台进程上的统计信息.V$BUFFER_POOL显示实例缓冲池的信息.V$BUFFER_POOL_STATISTICS显示实例缓冲池的信息.V$CACHE包含当前实例的SGA中的每一个块的头部信息.V$CACHE_LOCK 包含当前实例的SGA中的每一个块的头部信息.和V$CACHE非常相似,除特使平台锁管理器标识符号不同外.V$CACHE_TRANSFER除了只显示那些被探查了至少一次的块的信息外,和V$CACHE功能相同.26 V$CIRCUIT包含关于虚电路的信息,是用户通过调度程序和服务器到数据库的所有连接.V$CLASS_PING显示每一个块类中被探查块的数目.V$COMPATIBILITY显示数据库实例使用的特征,可以阻止数据库回到早期的版本中去.29 V$COMPATSEG显示数据库实例使用的永久性特征,可以阻止数据库回到早期的版本中去.V$CONTEXT列出当前对话的设置属性.31 V$CONTROLFILE列出控制文件的名称.32 V$CONTROLFILE_RECORD_SECTION 显示控制文件记录部分的信息.33 V$COPY_CORRUPTION显示控制文件中数据文件损坏的信息.34 V$CR_BLOCK_SERVER 显示用在缓存中块服务器后台进程上的统计信息.35 V$DATABASE包含控制文件中数据库的信息.36 V$DATAFILE包含控制文件中数据库文件的信息.37 V$DATAFILE_COPY包含控制文件中数据库文件副本的信息.38 V$DATAFILE_HEADERV$DB_CACHE_ADVICE 根据缓存的大小估计出物理读的数量.V$DB_OBJECT_CACHE 缓存在库缓存中的数据库对象.V$DB_PIPES 显示实例中的共享池当前描绘的管道.V$DBFILE 列出组成数据库的所有数据文件.V$DBLINK 查询会话所打开的所有数据库连接.V$DELETED_OBJECT 显示控制文件中被删除归档日志.V$DISPATCHER 提供调度进程的信息.V$DISPATCHER_RATE 为调度进程提供优质提供速率统计量.V$DLM_ALL_LOCKS 列出当前所有锁的信息.V$DLM_CONVERT_LOCAL 本地锁转换操作所消耗的时间.V$DLM_CONVERT_REMOTE 远程锁转换操作所消耗的时间.V$DLM_LATCH 它是过时的,参见V$LATCH V$DLM_LOCKS 这些是锁管理器已知的被阻塞或阻塞其他对象的锁信息.V$DLM_MISC 显示多种DLM统计量.V$DLM_RESS 显示当前锁管理器已知的全部资源的信息.V$ENABLEDPRIVE 显示被授予的特权.V$ENQUEUE_LOCK 显示排队对象所拥有的全部锁.V$EVENT_NAME 包含等待事件的信息.V$EXECUTION 显示并行执行中的信息.V$FALSE_PING 可能得到探查失败的缓冲区.V$FAST_START_SERVERS 执行并行操作事务恢复的所有从属操作的信息.V$FAST_START_TRANSACTIONS V$FILE_CACHE_TRANSFER 显示每个数据文件中探查的块的数量.V$FILE_PING 显示每个数据文件被探查的块数目.V$FILESTAT 包含文件关于读/写统计量信息.V$FIXED_TABLE 显示数据库中所有动态性能表和视图及导出表.V$FIXED_VIEW_DEFINITION 显示所有固定视图的定义.V$GC_ELEMENTS_WITH_COLLISIONS 可以找到保护多缓存的锁.V$GES_BLOCKING_ENQUEUE 这些是锁管理器已知的被阻塞或阻塞其他对象的锁信息.V$GES_CONVERT_LOCAL 本地锁转换操作所消耗的时间.V$GES_CONVERT_REMOTE 远程锁转换操作所消耗的时间.V$GES_ENQUEUE 显示当前锁管理员知道的所有的锁.V$GES_LATCH 参见V$LATCH V$GES_RESOURCE 显示当前锁管理器已知的全部资源的信息.V$GES_STATISTICS 显示多种DLM统计量.V$GLOBAL_BLOCKED_LOCKS 显示全局块锁.V$GLOBAL_TRANSACTION 显示当前激活的全局事务的信息.V$HS_AGENT 标识当前运行在一个给定的主机上的HS代理的集合.V$HS_SESSION ORACLE服务器打开的HS会话集.V$INDEXED_FIXED_COLUMN 显示建立索引的动态性能表中的列(X$表).V$INSTANCE 显示当前实例的状态.V$INSTANCE_RECOVERY 用来监视执行用户指定恢复读次数的限制机制.V$LATCH 为非双亲简易锁列出统计量.V$LATCH_CHILDREN关于子简易锁的统计量.83 V$LATCH_MISSES试图获得一个简易锁失败的统计量.84 V$LATCH_PARENT包含关于双亲简易锁的统计量.85 V$LATCHHOLDER当前简易锁持有者的信息.86 V$LATCHNAME包含关于显示在V$LATCH中的简易锁的解码简易锁名字的信息.87 V$LIBRARYCACHE关于高速缓存性能和活动的统计量.88 V$LICENSE许可证限制的信息.89 V$LOADCSTAT包含在一个直接装载执行过程中所编译的SQL*LOADER统计量.90 V$LOCK当前ORACLE所持有的锁.91 V$LOCK_ACTIVITY显示当前实例的DLM锁操作活动.92 V$LOCK_ELEMENT每一个被缓存使用的PCM锁在V$LOCK_ELEMENTS中都有一个条目.93 V$LOCKED_OBJECT列出每个事务所获得的全部锁.94 V$LOCK_WITH_COLLISIONS 可以查询出保护多缓冲区的锁.95 V$LOG控制文件中日志文件的信息.96 V$LOG_HISTORY控制文件中日志文件的历史信息.97 V$LOGFILE包含重做日志文件的信息.98 V$LOGHIST控制文件中日志文件的日志历史信息.99 V$LOGMNR_CONTENTS日志历史信息.100 V$LOGMNR_DICTIONARY日志历史信息.101 V$LOGMNR_LOGS日志信息.102 V$LOGMNR_PARAMETERS日志信息.103 V$MTS包含调节多线程的服务器的信息.104 V$MYSTAT当前会话的统计量.105 V$NLS_PARAMETERS当前NLS参数信息.106 V$NLS_VALID_VALUES列出所有NLS参数的有效值.107 V$OBJECT_DEPENDENCY能够通过当前装载在共享池中的包,过程或游标来决定依赖哪一个对象.108 V$OBJECT_USAGE来监视索引的使用.109 V$OBSOLETE_PARAMETER列出陈旧的参数.110 V$OFFINE_RANGE显示控制文件中数据文件的脱机信息.111 V$OPEN_CURSOR列出每一个会话当前打开的和解析的游标.112 V$OPTION列出ORACLE服务安装的状况.113 V$PARALLEL_DEGREE_LIMIT_MTH显示所有有效的并行度限制资源分配的方法.114 V$PARAMETER 列出关于初始化参数的信息.115 V$PARAMETER2列出了当前影响会话的参数和参数值.116 V$PGASTAT列出ORACLE内存使用统计.117 V$PING与V$CACHE一样.118 V$PQ_SESSTAT列出并行查询会话的统计信息.119 V$PQ_SLAVE一个实例上每个活动并行执行服务器的统计量.120 V$PQ_SYSSTAT列出并行查询的系统的统计量.第二篇:如何设置演讲者视图如何设置演讲者视图如何设置演讲者视图前言:大家在看此篇文章之前心中是不是一直存有一个疑问,那就是office组件中的powerpoint(PPT)制作中的“备注”到底有何作用?在工作中经常用PPT放映演示给客户进行讲演,也见识过专业讲师和IT销售给我介绍产品,使用的也是PPT。
oracle v$transaction 字段详解
oracle v$transaction 字段详解在Oracle数据库管理中,v$transaction是一个非常重要的系统视图之一,它提供了关于当前事务的有关信息。
在本文中,我们将深入探讨v$transaction视图的各个字段,以了解它们的作用和意义。
1. XIDUSN - 事务的Undo段编号在Oracle数据库中,Undo段用于存储回滚信息,以便在需要时回滚事务。
XIDUSN字段表示正在执行事务的Undo段编号。
2. XIDSLOT - 事务的事务表槽位号事务表是Oracle数据库用于跟踪事务活动的内部数据结构。
XIDSLOT字段表示该事务在事务表中的槽位号。
3. XIDSQN - 事务的序列号XIDSQN字段表示该事务的序列号。
在Oracle数据库中,每个事务都有一个唯一的序列号,用于与其他事务区分。
4. STATUS - 事务的状态STATUS字段表示该事务的状态。
Oracle数据库中有多种事务状态,包括ACTIVE(活动状态)、COMMITTED(已提交状态)、ROLLED BACK (已回滚状态)等。
5. START_TIME - 事务的开始时间START_TIME字段表示该事务的开始时间。
它是一个日期类型的值,表示该事务开始执行的时间。
6. START_SCNB - 事务的起始系统变更号START_SCNB字段表示该事务开始时系统的变更号。
系统变更号是Oracle数据库的内部计数器,用于跟踪数据库的变化。
7. START_SCNW - 事务的起始系统变更序列号START_SCNW字段表示该事务开始时系统的变更序列号。
变更序列号是系统变更号的一个分支,用于跟踪事务的变化。
8. USED_UREC - 事务使用的Undo记录数USED_UREC字段表示该事务使用的Undo记录数。
Undo记录是Undo 段中的单个记录,用于存储事务执行期间所做的更改。
9. USED_UBLK - 事务使用的Undo块数USED_UBLK字段表示该事务使用的Undo块数。
oracle性能调优汇总
性能调优---------------------方法:一、检查日志是否有错误二、检查参数是否设置正确三、检查系统IO、CPU、内存等利用率,查看哪些占用较高四、检查哪些SQL语句大量占用IO或CPU权衡性能与安全的方面:一、多个控制文件二、一个日志文件组中有多个日志文件三、频繁的执行检查点四、备份数据文件五、频繁的归档六、块检查七、同时执行操作与统计性能调优工具:查看ALTER.LOG中的信息:1、用/ORA- 能查找文件中的错误信息2、要想让ALTER.LOG文件中产生检查点开始与结束信息,得修改参数LOG_CHECKPOINTS_TO_ALERT,将之修改为TRUE。
默认为FALSE。
SQL>ALTER SYSTEM SET LOG_CHECKPOINTS_TO_ALERT = TRUE SCOPE=BOTH;在用户UDUMP目录下的文件中产生监控用户执行信息:方法1、监控自己的操作。
在自己的session中设置参数,这样就能在用户udump目录下生成执行的SQL语句信息SQL>ALTER SESSION SET SQL_TRACE=TRUE;在pl/sql或者sqlplus中,打开一个sql_window。
(1)先运行:alter session set sql_trace=true;(2)再运行你那个返回结果不正确的SQL(3)再运行:alter session set sql_trace=false;(4)马上登陆到机器上,到$ORACLE_BASE/admin/sid/udump目录下。
(5)找到刚生成的.trc文件(假设文件名是 xxx.trc),执行命令转储跟踪文件:tkprof xxx.trc aa.txt。
查看aa.txt文件。
这个文件里面有执行计划。
看看执行计划每一步返回的结果集记录数是不是正确。
方法2、SYS用户监控别的用户执行情况方法3、对所有SESSION进行监控SQL>ALTER SESSION SET SQL_TRACE=TURE;安装STATSPACK一、创建表空间,最少100M二、安装在安装时默认创建了一个用户PERFSTAT,所以密码也可以输入这个选择要将快照存放于哪个表空间使用STATSPACK手动执行生成一次快照,间隔一般为10几分钟为益,中间不要有停机。
oracle动态性能(V$)视图
oracle动态性能(V$)视图C.1 动态性能视图Oracle 服务器包括⼀组基础视图,这些视图由服务器维护,系统管理员⽤户 SYS 可以访问它们。
这些视图被称为动态性能视图,因为它们在数据库打开和使⽤时不断进⾏更新,⽽且它们的内容主要与性能有关。
虽然这些视图很像普通的数据库表,但它们不允许⽤户直接进⾏修改。
这些视图提供内部磁盘结构和内存结构⽅⾯的数据。
⽤户可以对这些视图进⾏查询,以便对系统进⾏管理与优化。
⽂件CATALOG.SQL 包含这些视图的定义以及公⽤同义词。
必须运⾏CATALOG.SQL 创建这些视图及同义词。
C.1.1 V$ 视图动态性能视图由前缀V_$标识。
这些视图的公⽤同义词具有前缀V$。
数据库管理员或⽤户应该只访问V$对象,⽽不是访问V_$对象。
动态性能视图由企业管理器和Oracle Trace 使⽤,Oracle Trace 是访问系统性能信息的主要界⾯。
建议:⼀旦实例启动,从内存读取数据的V$视图就可以访问了。
从磁盘读取数据的视图要求数据库已经安装好了。
警告:给出动态性能视图的有关信息只是为了系统的完整性和对系统进⾏管理。
公司并不承诺以后也⽀持这些视图。
C.1.2 GV$ 视图在Oracle 中,还有⼀种补充类型的固定视图。
即GV$(Global V$,全局V$)固定视图。
对于本章介绍的每种V$ 视图(除V$CACHE_LOCK、V$LOCK_ACTIVITY、V$LOCKS_WITH_COLLISIONS和V$ROLLNAME 外),都存在⼀个GV$视图。
在并⾏服务器环境下,可查询GV$视图从所有限定实例中检索V$视图的信息。
除V$信息外,每个GV$视图拥有⼀个附加的名为INST_ID 的整• v$lock• v$sqlarea• v$session• v$sesstat• v$session_wait• v$process• v$transaction• v$sort_usage• v$sysstat九个重要视图1)v$lock给出了锁的信息,如type字段, user type locks有3种:TM,TX,UL,system type locks有多种,常见的有:MR,RT,XR,TS等。
Oraclev_$和v$的解释
Oraclev_$和v$的解释以v_$mystat和v$mystat具体说明grant语句中使⽤的v_$mystat和test⽤户访问的v$mystat不⼀样这⾥说⼀下 v$mystat 和 v_$mystat 的区别初始状态下SQL> conn test/testConnected.SQL>select sid from v$mystat where rownum=1;select sid from v$mystat where rownum=1*ERROR at line 1:ORA-00942: table or view does not exist没有赋权限的情况下,提⽰访问的表或者视图不存在,当sys⽤户给test⽤户授权后SQL> conn /as sysdbaConnected.SQL>grant select on v_$mystat to test;Grant succeeded.SQL> conn test/testConnected.SQL>select sid from v$mystat where rownum=1;SID----------15test⽤户就可以访问了,⼤家注意到上⾯两个语句中执⾏的对象并不⼀样,要访问的是v$mystat,⽽授权的是v_$mystat,如果我们直接给v$mystat授权SQL>grant select on v$mystat to test;grant select on v$mystat to test*ERROR at line 1:ORA-02030: can only select from fixed tables/views说明这⾥授权的v$mystat不是固有视图,不能直接授权,实际这⾥test访问的v$mystat是⼀个同义词,sys不能给同义词授权,只能授权给固定的表或视图,同义词在Oracle中可以理解为⼀个对象的别名,有私有和共⽤之分,每个⽤户都可以给⾃⼰的对象创建⾃⼰的同义词,这样创建的同义词只能⾃⼰使⽤。
oracle系统视图字段说明
oracle系统视图字段说明oracle系统表v$session、v$sql表的列字段说明在本视图中,每⼀个连接到数据库实例中的 session都拥有⼀条记录。
包括⽤户 session及后台进程如 DBWR, LGWR, arcchiver等等。
V$SESSION中的常⽤列V$SESSION是基础信息视图,⽤于找寻⽤户 SID或 SADDR。
不过,它也有⼀些列会动态的变化,可⽤于检查⽤户。
如例:SQL_HASH_VALUE, SQL_ADDRESS:这两列⽤于鉴别默认被 session执⾏的 SQL语句。
如果为 null或 0,那就说明这个 session没有执⾏任何 SQL语句。
PREV_HASH_VALUE和 PREV_ADDRESS两列⽤来鉴别被 session执⾏的上⼀条语句。
注意:当使⽤ SQL*Plus进⾏选择时,确认你重定义的列宽不⼩于 11以便看到完整的数值。
STATUS:这列⽤来判断 session状态是:l Achtive:正执⾏ SQL语句 (waiting for/using a resource)l Inactive:等待操作 (即等待需要执⾏的 SQL语句 )l Killed:被标注为删除下列各列提供 session的信息,可被⽤于当⼀个或多个 combination未知时找到 session。
Session信息l SID: SESSION标识,常⽤于连接其它列l SERIAL#:如果某个 SID⼜被其它的 session使⽤的话则此数值⾃增加 (当⼀个 SESSION结束,另⼀个 SESSION开始并使⽤了同⼀个 SID)。
l AUDSID:审查 session ID唯⼀性,确认它通常也⽤于当寻找并⾏查询模式l USERNAME:当前 session在 oracle中的⽤户名。
Client信息数据库 session被⼀个运⾏在数据库服务器上或从中间服务器甚⾄桌⾯通过 SQL*Net连接到数据库的客户端进程启动,下列各列提供这个客户端的信息l OSUSER:客户端操作系统⽤户名l MACHINE:客户端执⾏的机器l TERMINAL:客户端运⾏的终端l PROCESS:客户端进程的 IDl PROGRAM:客户端执⾏的客户端程序要显⽰⽤户所连接 PC的 TERMINAL、 OSUSER,需在该 PC的 ORACLE.INI或 Windows中设置关键字 TERMINAL, USERNAME。
oracle v$sql说明
oracle v$sql说明
Oracle V$SQL是一个动态视图,用于提供有关正在Oracle数据库中执行的SQL语句的信息。
它包含了已经解析但尚未执行的SQL语句的信息,包括SQL文本、执行计划、绑定变量和其他相关信息。
通过查询V$SQL视图,可以了解当前正在执行的SQL语句的情况,有助于性能调优和故障排除。
V$SQL视图中的一些重要列包括SQL_ID(SQL语句的唯一标识符)、SQL_TEXT(SQL语句的文本)、EXECUTIONS(SQL语句执行的次数)、PARSE_CALLS(SQL语句解析的次数)、BUFFER_GETS(从数据库缓存中获取的逻辑读取次数)、ROWS_PROCESSED(SQL语句处理的行数)等。
通过这些列的信息,可以分析SQL语句的执行情况和性能表现。
另外,V$SQL视图还可以与其他动态性能视图结合使用,如
V$SESSION、V$SQL_PLAN等,以获取更全面的SQL执行信息。
通过监视V$SQL视图,可以发现潜在的性能问题,优化SQL语句的执行计划,提高数据库的性能和稳定性。
总之,Oracle V$SQL视图提供了关于数据库中正在执行的SQL
语句的详细信息,对于数据库管理员和开发人员来说是非常有用的工具,可以帮助他们监控和优化数据库性能。
Oracle常用的性能视图
1.性能视图性能视图是Oracle中一些记录数据库性能方面的视图,通过查看这些视图,获得数据库当前或历史上某个时间的性能数据。
它比SQL_TRACE,AWR报告获取数据更及时,便捷。
1.1 V$SQLV$SQL 视图是一个DBA 使用频率非常高的动态视图,它通常和V$SESSION 一起使用来获得当前会话的一些SQL执行情况。
可以通过该视图查看正在执行的SQL语句及这条SQL运行了多长时间或者它正在等待什么样的事件。
1.1.1 用V$SQL 查看SQL 内容为了获取用户连接到数据库中的信息,需要先从V$SESSION视图确定用户的SID号,然后用v$session 和 v$sql查看相关信息。
SELECT a.sql_text,b.status,st_call_et,b.eventFROM v$sql a, v$session bWHERE a.sql_id = b.sql_id AND b.sid = 123;1.1.2 用V$SQL 查看SQL执行和等待时间对于已经执行完毕的会话,可以在V$SQL视图中找到它的执行时间和消耗的CPU时间,这些信息对我们分析一些性能上存在问题的SQL有用处。
比如对比SQL 消耗的CPU 和执行时间,就可以大致知道SQL语句执行中是否有长时间的等待事件:SELECT sql_text,cpu_time / (1000 * 1000) t_cpu,elapsed_time / (1000 * 1000)t_elap,(cpu_time / elapsed_time / (1000 * 1000)) * 100 pctFROM v$sqlWHEREsql_id='209q0m326kdzy';返回如上结果,如果说T_ELAP 时间比较多,而CPU时间比较少,说明这条语句在执行过程中基本处于等待状态。
1.2 V$SQL_SHARED_CURSOR这个视图存放了SQL在执行过程中游标共享的信息,它能帮助我们分析看起来一样的SQL,为什么没有共享的原因。
v$session字段解释
v$session字段解释
v$session是Oracle数据库中的动态性能视图,它提供了关于当前会话(session)的信息。
会话是指应用程序或用户与数据库之间的连接,v$session视图中的字段提供了有关会话的各种信息。
以下是v$session视图中一些常见字段的解释:
1. SID(Session ID),会话的唯一标识符,用于区分不同的会话。
2. SERIAL#(Serial Number),会话的序列号,与SID一起用于唯一标识会话。
3. USERNAME,正在使用会话的用户的用户名。
4. STATUS,会话的状态,例如ACTIVE(活动状态)、INACTIVE(非活动状态)等。
5. OSUSER,启动会话的操作系统用户。
6. MACHINE,启动会话的计算机名称。
7. PROGRAM,启动会话的程序或应用程序名称。
8. SQL_ID,正在执行的SQL语句的唯一标识符。
9. SQL_ADDRESS,正在执行的SQL语句的内存地址。
10. SQL_HASH_VALUE,正在执行的SQL语句的哈希值。
除了上述字段外,v$session视图还包含了许多其他有用的信息,如会话的登录时间、最后活动时间、所使用的数据库实例等。
通过查询v$session视图,可以及时了解当前会话的状态和活动,并对数据库性能进行监控和调优。
总之,v$session字段提供了关于当前会话的各种信息,可以帮助数据库管理员和开发人员监控和管理数据库的性能和活动。
这些信息对于诊断和解决数据库性能问题非常重要,可以帮助用户更好地理解数据库的运行情况。
oracle中性能视图V$SYSSTAT小结
V$SYSSTAT中包含多个统计项,这部分介绍了一些关键的v$sysstat统计项,在调优方面相当有用。
下列按字母先后排序:数据库使用状态的一些关键指标:l CPU used by this session:所有session的cpu占用量,不包括后台进程。
这项统计的单位是百分之x秒.完全调用一次不超过10msl db block changes:那部分造成SGA中数据块变化的insert,update或delete操作数这项统计可以大概看出整体数据库状态。
在各项事务级别,这项统计指出脏缓存比率。
l execute count:执行的sql语句数量(包括递归sql)l logons current:当前连接到实例的Sessions。
如果当前有两个快照则取平均值。
l logons cumulative:自实例启动后的总登陆次数。
l parse count (hard):在shared pool中解析调用的未命中次数。
当sql语句执行并且该语句不在shared pool或虽然在shared pool但因为两者存在部分差异而不能被使用时产生硬解析。
如果一条sql语句原文与当前存在的相同,但查询表不同则认为它们是两条不同语句,则硬解析即会发生。
硬解析会带来cpu和资源使用的高昂开销,因为它需要oracle 在shared pool中重新分配内存,然后再确定执行计划,最终语句才会被执行。
l parse count (total):解析调用总数,包括软解析和硬解析。
当session执行了一条sql语句,该语句已经存在于shared pool并且可以被使用则产生软解析。
当语句被使用(即共享) 所有数据相关的现有sql语句(如最优化的执行计划)必须同样适用于当前的声明。
这两项统计可被用于计算软解析命中率。
l parse time cpu:总cpu解析时间(单位:10ms)。
包括硬解析和软解析。
l parse time elapsed:完成解析调用的总时间花费。
[三思笔记]动态性能视图汇总
学习动态性能表第一篇 --v$sysstat 2007.5.23按照 OracleDocument 中的描述, v$sysstat存储自数据库实例运行那刻起就开始累计全实例 (instance-wide的资源使用情况。
类似于 v$sesstat,该视图存储下列的统计信息:1>.事件发生次数的统计 (如:user commits2>.数据产生,存取或者操作的 total 列 (如:redo size3>.如果 TIMED_STATISTICS 值为 true, 则统计花费在执行操作上的总时间(如:CPU used by this sessionv$sysstat视图常用列介绍:●STATISTIC#: 标识●NAME: 统计项名称●V ALUE: 资源使用量该视图还有一列 class-统计类别但极少会被使用,各类信息如下:1 代表事例活动2 代表 Redo buffer活动4 代表锁8 代表数据缓冲活动16 代表 OS 活动32 代表并行活动64 代表表访问128 代表调试信息注意:Statistic#的值在不同版本中各不相同,使用时要用 Name 做为查询条件而不要以 statistic#的值做为条件。
使用 v$sysstat中的数据该视图中数据常被用于监控系统性能。
如 buffer cache命中率、软解析率等都可从该视图数据计算得出。
该视图中的数据也被用于监控系统资源使用情况, 以及系统资源利用率的变化。
正因如此多的性能数据, 检查某区间内系统资源使用情况可以这样做, 在一个时间段开始时创建一个视图数据快照,结束时再创建一个,二者之间各统计项值的不同 (end value - begin value即是这一时间段内的资源消耗情况。
这是 oracle 工具的常用方法,诸如 Statspack 以及 BSTAT/ESTAT都是如此。
为了对比某个区间段的数据,源数据可以被格式化(每次事务,每次执行,每秒钟或每次登陆 ,格式化后数据更容易从两者中鉴别出差异。
Oracle 动态视图V$,V_$,GV$,GV_$与X$之间的关系(重要)
Oracle 动态视图V$,V_$,GV$,GV_$与X$之间的关系概括:GV$与V$是视图,X$是表。
gv$是全局视图,而v$是针对某个实例的视图,X$是所有gv$的数据来源,从gv$到v$需要加上where inst_id = USERENV(’Instance’)。
一般来说一个oracle数据库只会有一个实例对其操作,但在RAC上可以有多台实例同时装载并打开一个数据库。
那gv_$与v_$的定义又在什么地方呢?原来在$ORACLE_HOME/rdbms/admin存放着系统管理脚本。
因此我们常用的v$ 是v_$的同义词,v_$是基于真正的视图v$,而真正的v$视图是在gv$的基础上限制inst_id得到;我们常用的gv$是gv_$的同义词,gv_$基于真正的视图gv$,而真正的gv$视图基于系统表X$。
具体的内容如下:前言:在oracle运维的过程中,经常会使用到一些以V$开头的动态视图,比如V$session, 有一次偶然看到有人用V_$session, 初以为别人写错了,没想到desc v_$session以后能看到和v$session一样的结构,再以后又发现以gv$开头的视图等等。
趁这次在一台Linux系统上装oracle的机会,终于弄清楚了这些动态视图与相应表之间的关系。
这些都是由oracle自己管理的数据结构,得从v$fixed_table入手:[oracle@3857 admin]$ sqlplus sys/sys@archdw as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 14 11:27:20 2009Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> desc v$fixed_table;Name Null? Type —————————————–——–—————————-NAME V ARCHAR2(30)OBJECT_ID NUMBERTYPE V ARCHAR2(5)TABLE_NUM NUMBERSQL> select * from v$fixed_tableNAME OBJECT_ID TYPE TABLE_NUM —————————————- —–———-X$KQFTA 4294950912 TABLE 0X$KQFVI 4294950913 TABLE 1GV$PROCESS 4294951256 VIEW 65537V$PROCESS 4294950917 VIEW 65537GV$BGPROCESS 4294951257 VIEW 65537………………………………………从上面可以看到GV$与V$是视图,X$是表。
Oracle性能分析的一些总结
Oracle性能分析的一些总结在Oracle数据库中进行性能分析是关键工作之一,他能够帮助我们了解数据库的性能瓶颈并提供优化建议。
下面是一些关于Oracle性能分析的总结。
1.数据库性能分析的目标是找出数据库系统中的性能瓶颈,并提供优化建议。
性能瓶颈可能出现在数据存储、查询语句、索引、服务器配置等方面。
2. Oracle数据库中的性能分析可以通过多种手段进行。
常用的性能分析方法包括使用Oracle自带的工具和视图,如AWR报告、ASH报告、执行计划等;使用第三方性能分析工具,如Oracle Enterprise Manager、TOAD、SQL Developer等。
3. AWR(Automatic Workload Repository)报告是Oracle数据库中性能分析的重要工具之一、AWR报告可以提供数据库的性能指标、历史性能数据、系统事件等信息,帮助我们定位性能问题。
4. Oracle数据库中的执行计划是性能分析的关键工具之一、执行计划显示了查询语句或PL/SQL代码在数据库内部是如何执行的,通过分析执行计划可以了解查询语句的性能瓶颈。
5.数据库索引是性能分析的重要方面之一、索引可以提高查询性能,但过多或不合适的索引也会导致性能下降。
通过分析执行计划和优化器统计信息,可以判断索引是否合理。
6. Oracle数据库中的缓存也是性能分析的关键点之一、数据库缓存包括数据块缓存、SQL语句缓存等。
通过监视缓存的利用率和命中率,可以判断缓存是否合理。
7.数据库服务器的硬件配置也会影响性能。
硬件配置包括CPU、内存、磁盘等。
通过监视服务器的负载、资源使用情况,可以判断硬件配置是否合理。
8.数据库性能分析还需要考虑应用程序的影响。
应用程序的设计和实现可能会导致性能瓶颈。
通过分析应用程序的SQL语句、PL/SQL代码等,可以定位性能问题所在。
9.在进行性能分析时,需要进行实验和测试。
通过在测试环境中模拟生产环境的负载测试,可以了解数据库在不同负载下的性能表现。
oracle常用性能视图
视图名字说明1. V$FIXED_TABLE 列出当前发行的固定对象的说明这个视图显示数据库中所有动态性能表、视图和导出表。
某些V$表(如V$ROLLNAME) 涉及实际的表,因此没有列出。
列数据类型说明NAME V ARCHAR2(30) 对象名OBJECT_ID NUMBER 固定对象的标识符TYPE V ARCHAR2(5) 对象类型:TABLE、VIEWTABLE_NUM NUMBER 如果动态性能表为TABLE类型,则为标识它的号码2. V$INSTANCE 显示当前实例的状态这个视图显示当前实例的状态。
这个版本的V$INSTANCE与前面版本的的V$INSTANCE 不兼容。
列数据类型说明INSTANCE_NUMBER NUMBER 实例注册所用的实例号。
对应与INSTANCE _NUMBER初始化参数。
可参阅INSTANCE_NUMBERINSTANCE_NAME V ARCHAR2(16) 实例名HOST_NAME V ARCHAR2(64) 主机名VERSION V ARCHAR2(17) RDBMS版本STARTUP_TIME DATE 实例启动的时间STATUS V ARCHAR2(7) STARTED/MOUNTED/OPENSTARTED:启动安装后或数据库关闭后,OPEN:启动后或数据库打开后PARALLEL V ARCHAR2(3) YES/NO:是否并行服务器模式THREAD# NUMBER 实例打开的重做线程ARCHIVER V ARCHAR2(7) STOPPED/STARTED/FAILED;FAILED表示归档程序最后一次归档某个日志失败,但在5分钟内将重试LOG_SWITCH_WAIT V ARCHAR2(11) 正在等待ARCHIVELOG/CLEARLOG/ CHECKPOINT事件日志切换。
注意:如果ALTERSYSTEM SWITCHLOGFILE挂起,但在当前联机重做日志中还有空间则这个值为NULLLOGINS V ARCHAR2(10) ALLOWED/RESTRICTED SHUTDOWN_PENDINGV ARCHAR2(3) YES/NODATABASE_STATUS V ARCHAR2(17) 数据库的状态3. V$LATCH 列出锁存器的统计数据这个视图列出非父级栓锁的统计数据和父级栓锁的汇总统计数据。
ORACLE动态性能视图
THREAD# STATUS GROUPS INSTANCE SEQUENCE#
---------- ------ ---------- ---------- ----------
1 OPEN 3 dpx007 13
18. V$LOCK
DBW0 db writer process 0
LGWR Redo etc.
CKPT checkpoint
SMON System Monitor Process
RECO distributed recovery
11. V$DATABASE
取得当前数据库的详细信息
V$DATAFILE V$DATAFILE_HEADER V$LOGFILE
3. OPEN
数据库打开时,ORACLE按照控制文件所记载的信息打开所有数据文件和重做日志。除了可以访问SGA和控制文件中获取信息的动态性能视图外,还可以访问与ORACLE性能相关的动态性能视图(V$FILESTAT V$SESSION_WAIT V$WAITSTAT)
SQL> select * from V$SGA;
NAME VALUE
-------------------- ----------
Fixed Size 282576
Variable Size 83886080
Database Buffers 33554432
7. V$OPTION
显示已经安装的ORACLE选项
SQL> select * from V$OPTION;
8. V$SESSION
显示会话的详细信息
SQL> select sid,serial#,username from V$session
Oracle数据库性能
该视图记录数据库指标反映数据库当前的状态记录每分钟或每十五秒的值
数据库性能两大指标
QPS(Queries Per Second,每秒查询数) TPS(Transactions Per Second,每秒处理事务数)
Oracle数 据 库 性 能
具体案例 QPS --一分钟QPS select value from v$sysmetric where metric_name in ('Executions Per Sec') and group_id = 2 --15秒QPS select value from v$sysmetric where metric_name in ('Executions Per Sec') and group_id UE from v$sysmetric where metric_name in ('User Commits Per Sec')) + (select VALUE from v$sysmetric where metric_name in ('User Rollbacks Per Sec')) as TPS FROM DUAL
视图介绍 V$SYSMETRIC:该视图记录数据库指标,反映数据库当前的状态,记录每分钟或每十五秒的值。 V$SYSMETRIC_HISTORY: 是V$SYSMETRIC表的历史记录表,只是记录了最近一小时的数据 V$SYSMETRIC_SUMMARY: 是V$SYSMETRIC_HISTORY的汇总,记录最近一个小时最大值,最小值和平均值 V$SYSSTAT: 记录数据库指标自实例启动以来的累加值,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
V$SYSSTAT中包含多个统计项,这部分介绍了一些关键的v$sysstat统计项,在调优方面相当有用。
下列按字母先后排序:数据库使用状态的一些关键指标:l CPU used by this session:所有session的cpu占用量,不包括后台进程。
这项统计的单位是百分之x秒.完全调用一次不超过10msl db block changes:那部分造成SGA中数据块变化的insert,update或delete操作数这项统计可以大概看出整体数据库状态。
在各项事务级别,这项统计指出脏缓存比率。
l execute count:执行的sql语句数量(包括递归sql)l logons current:当前连接到实例的Sessions。
如果当前有两个快照则取平均值。
l logons cumulative:自实例启动后的总登陆次数。
l parse count (hard):在shared pool中解析调用的未命中次数。
当sql语句执行并且该语句不在shared pool或虽然在shared pool但因为两者存在部分差异而不能被使用时产生硬解析。
如果一条sql语句原文与当前存在的相同,但查询表不同则认为它们是两条不同语句,则硬解析即会发生。
硬解析会带来cpu和资源使用的高昂开销,因为它需要oracle 在shared pool中重新分配内存,然后再确定执行计划,最终语句才会被执行。
l parse count (total):解析调用总数,包括软解析和硬解析。
当session执行了一条sql语句,该语句已经存在于shared pool并且可以被使用则产生软解析。
当语句被使用(即共享) 所有数据相关的现有sql语句(如最优化的执行计划)必须同样适用于当前的声明。
这两项统计可被用于计算软解析命中率。
l parse time cpu:总cpu解析时间(单位:10ms)。
包括硬解析和软解析。
l parse time elapsed:完成解析调用的总时间花费。
l physical reads:OS blocks read数。
包括插入到SGA缓存区的物理读以及PGA中的直读这项统计并非i/o请求数。
l physical writes:从SGA缓存区被DBWR写到磁盘的数据块以及PGA进程直写的数据块数量。
l redo log space requests:在redo logs中服务进程的等待空间,表示需要更长时间的log switch。
l redo size:redo发生的总次数(以及因此写入log buffer),以byte为单位。
这项统计显示出update活跃性。
l session logical reads:逻辑读请求数。
l sorts (memory) and sorts (disk):sorts(memory)是适于在SORT_AREA_SIZE(因此不需要在磁盘进行排序)的排序操作的数量。
sorts(disk)则是由于排序所需空间太大,SORT_AREA_SIZE不能满足而不得不在磁盘进行排序操作的数量。
这两项统计通常用于计算in-memory sort ratio。
l sorts (rows): 列排序总数。
这项统计可被'sorts (total)'统计项除尽以确定每次排序的列。
该项可指出数据卷和应用特征。
l table fetch by rowid:使用ROWID返回的总列数(由于索引访问或sql语句中使用了'where rowid=&rowid'而产生)l table scans (rows gotten):全表扫描中读取的总列数l table scans (blocks gotten):全表扫描中读取的总块数,不包括那些split的列。
l user commits + user rollbacks:系统事务起用次数。
当需要计算其它统计中每项事务比率时该项可以被做为除数。
例如,计算事务中逻辑读,可以使用下列公式:session logical reads / (user commits + user rollbacks)。
注:SQL语句的解析有软解析soft parse与硬解析hard parse之说,以下是5个步骤:1:语法是否合法(sql写法)2:语义是否合法(权限,对象是否存在)3:检查该sql是否在公享池中存在-- 如果存在,直接跳过4和5,运行sql. 此时算soft parse4:选择执行计划5:产生执行计划-- 如果5个步骤全做,这就叫hard parse.注意物理I/Ooracle报告物理读也许并未导致实际物理磁盘I/O操作。
这完全有可能因为多数操作系统都有缓存文件,可能是那些块在被读取。
块也可能存于磁盘或控制级缓存以再次避免实际I/O。
Oracle报告有物理读也许仅仅表示被请求的块并不在缓存中。
由V$SYSSTAT得出实例效率比(Instance Efficiency Ratios)下列是些典型的instance efficiency ratios 由v$sysstat数据计算得来,每项比率值应该尽可能接近1:l Buffer cache hit ratio:该项显示buffer cache大小是否合适。
公式:1-((physical reads-physical reads direct-physical reads direct (lob)) / session logical reads)执行:select 1-((a.value-b.value-c.value)/d.value)from v$sysstat a,v$sysstat b,v$sysstat c,v$sysstat dwhere ='physical reads' and='physical reads direct' and='physical reads direct (lob)' and='session logical reads';l Soft parse ratio:这项将显示系统是否有太多硬解析。
该值将会与原始统计数据对比以确保精确。
例如,软解析率仅为0.2则表示硬解析率太高。
不过,如果总解析量(parse count total)偏低,这项值可以被忽略。
公式:1 - ( parse count (hard) / parse count (total) )执行:select 1-(a.value/b.value)from v$sysstat a,v$sysstat bWhere ='parse count (hard)' and ='parse count (total)';l In-memory sort ratio:该项显示内存中完成的排序所占比例。
最理想状态下,在OLTP系统中,大部分排序不仅小并且能够完全在内存里完成排序。
公式:sorts (memory) / ( sorts (memory) + sorts (disk) )执行:select a.value/(b.value+c.value)from v$sysstat a,v$sysstat b,v$sysstat cwhere ='sorts (memory)' and='sorts (memory)' and='sorts (disk)';l Parse to execute ratio:在生产环境,最理想状态是一条sql语句一次解析多数运行。
公式:1 - (parse count/execute count)执行:select 1-(a.value/b.value)from v$sysstat a,v$sysstat bwhere ='parse count (total)' and ='execute count';l Parse CPU to total CPU ratio:该项显示总的CPU花费在执行及解析上的比率。
如果这项比率较低,说明系统执行了太多的解析。
公式:1 - (parse time cpu / CPU used by this session)执行:select 1-(a.value/b.value)from v$sysstat a,v$sysstat bwhere ='parse time cpu' and='CPU used by this session';l Parse time CPU to parse time elapsed:通常,该项显示锁竞争比率。
这项比率计算是否时间花费在解析分配给CPU进行周期运算(即生产工作)。
解析时间花费不在CPU周期运算通常表示由于锁竞争导致了时间花费公式:parse time cpu / parse time elapsed执行:select a.value/b.valuefrom v$sysstat a,v$sysstat bwhere ='parse time cpu' and ='parse time elapsed';从V$SYSSTAT获取负载间档(Load Profile)数据负载间档是监控系统吞吐量和负载变化的重要部分,该部分提供如下每秒和每个事务的统计信息:logons cumulative, parse count (total), parse count (hard), executes, physical reads, physical writes, block changes, and redo size.被格式化的数据可检查'rates'是否过高,或用于对比其它基线数据设置为识别system profile在期间如何变化。
例如,计算每个事务中block changes可用如下公式:db block changes / ( user commits + user rollbacks )执行:select a.value/(b.value+c.value)from v$sysstat a,v$sysstat b,v$sysstat cwhere ='db block changes' and='user commits' and='user rollbacks';其它计算统计以衡量负载方式,如下:l Blocks changed for each read:这项显示出block changes在block reads中的比例。