按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$s

Oracle 学习动态性能表 v$locked_object

本视图列出系统上的每个事务处理所获得的所有锁。

V$LOCKED_OBJECT中的列说明:

XIDUSN:回滚段号

XIDSLOT:槽号

XIDSQN:序列号

OBJECT_ID:被锁对象ID

SESSION_ID:持有锁的sessionID

ORACLE_USERNAME:持有锁的Oracle 用户名

OS_USER_NAME:持有锁的操作系统 用户名

PROCESS:操作系统进程号

LOCKED_MODE:锁模式,值同上表1

示例:1.以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句:

select object_id,session_id,locked_mode from v$locked_object;

select t2.username, t2.sid, t2.serial#, t2.logon_time

from v$locked_object t1, v$session t2

where t1.session_id = t2.sid order by t2.logon_time;

如果有长期出现的一列,可能是没有释放的锁。我们可以用下面SQL语句杀掉长期没有释放非正常的锁:

alter system kill session 'sid,serial#';

Oracle 学习动态性能表 v$locked

V$LOCK这个视图列出Oracle 服务器当前拥有的锁以及未完成的锁或栓锁请求。如果你觉着session在等待等待事件队列那你应该检查本视图。如果你发现session在等待一个锁,那么按如下先后顺序:

使用V$LOCK找出session持有的锁。

使用V$SESSION找出持有锁或等待锁的session执行的sql语句。

使用V$SESSION_WAIT找出什么原因导致session持有锁堵塞。

使用V$SESSION获取关于持有锁的程序和用户的更多信息。

V$LOCK中的常用列

SID:表示持有锁的会话信息。

TYPE:表示锁的类型。值包括TM和TX等。

LMODE:表示会话等待的锁模式的信息。用数字0-6表示,和表1相对应。

REQUEST:表示session请求的锁模式的信息。

ID1,ID2:表示锁的对象标识。

公共锁类型

在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。

当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。TM锁包括了SS、SX、S、X等多种模式,在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁,如下表1。

TX:行级锁,事务锁

在改变数据时必须是排它模式(mode 6)。每一个活动事务都拥有一个锁。它将在事务结束(commit/rollback)时释放。如果一个块包括的列被改变而没有ITL(interested transaction list)槽位(entries),那么session将锁置于共享模式(mode 4)。当session获得块的ITL槽位时释放。当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。指出回滚段和事务表项。

按下列项以避免竞争:

避免TX-6类型竞争,需要根据您的应用而定。

避免TX-4类型竞争,可以考虑增加对象INITRANS参数值。

TM:表级锁

数据库执行任何DDL语句时必须是排它模式;例如alter table,drop table。执行像insert,update,delete这类DML语句时处于共享模式。它防止其它session对同一个对象同时执行ddl语句。任何对象拥有正被改变的数据,TM锁都将必须存在。锁指向对象。在TM队列避免竞争,可以考虑屏蔽对象表级锁,屏蔽表级锁防止对象执行任何ddl语句。

ST:空间事务锁

每个数据库(非实例)拥有一个ST锁。除了本地管理表空间,在space管理操作(新建或删除extents)时必须是排它模式。对象creation, dropping, extension, 以及truncation都处于这种锁。多数公共原因的争夺,是在磁盘排序(并非使用真正的临时表空间)或回滚段扩展或收缩。

按如下项以避免竞争:

使用真正的临时表空间(true temporary tablespaces),,利用临时文件。临时段在磁盘排序之后并不创建或删除。

使用本地管理表空间。

指定回滚段避免动态扩展和收缩,或使用自动undo management。

避免应用执行创建或删除数据库对象。

UL:用户定义锁

用户可以自定义锁。内容较多并与此节关系不大,略过。

V$LOCK中的连接列

Column View Joined Column(s)

SID V$SESSION SID

ID1, ID2, TYPE V$LOCK ID1, ID2, TYPE

ID1 DBA_OBJECTS OBJECT_ID

TRUNCID1/65536) V$ROLLNAME USN

如果session在等待锁,这可被用于找出session持有的锁。可被用于找出DML锁类型的被锁对象(type='TM'),可被用于找出行级事务锁(TYPE='TX')使用中的回滚段,不过需要通过V$TRANSACTION连接查询得到。

表1 Oracle的TM锁类型

锁模式

锁描述

解释

SQL操作

0

none

1

NULL

Select

2

SS(Row-S)

行级共享锁,其他对象只能查询这些数据行

Select for update、Lock for update、Lock row share

3

SX(Row-X)

行级排它锁,在提交前不允许做DML操作

Insert、Update、Delete、Lock row share

4

S(Share)

共享锁

Create index、Lock share

5

SSX(S/Row-X)

共享行级排它锁

Lock share row exclusive

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

oracle表是动态表怎么算排名,Oracle学习动态性能表相关推荐

  1. DBA必知的170张Oracle常用动态性能表介绍

     DBA必知的170张Oracle常用动态性能表介绍 常用动态性能表.pdf 附录C 动态性能(V$)视图 本附录介绍动态性能视图.这些视图一般作为V$视图引用.本附录包括下列内容: ???? 动态性 ...

  2. Oracle DMP 操作笔记之根据DMP逆向推导出导出的表空间名称

    最近在带着一群.NET新兵们在开发和升级一套系统,本人虽然工作好几年,但是也是属于啥都懂一点,啥都不会的队伍,碰到新兵更是蛋都碎了,还特别拘谨,为啥新兵们都是基础知识很不错的,看来要好好练习内功了,好 ...

  3. 学习动态性能表(3)--v$sqlv$sql_plan

    学习动态性能表 第三篇-(1)-v$sq 2007.5.25 V$SQL中存储具体的SQL语句. 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1).如果有多个cur ...

  4. 学习动态性能表(10)--v$session_longops

    学习动态性能表 第十篇--V$SESSION_LONGOPS  2007.6.7 本视图显示运行超过6秒的操作的状态.包括备份,恢复,统计信息收集,查询等等. 要监控查询执行进展状况,你必须使用cos ...

  5. lob移表空间 oracle_Oracle数据库(1)Oracle体系结构概述(一)

    Oracle数据库的体系结构主要包括:物理存储结构.逻辑存储结构.内存结构和实例进程结构.了解了Oracle的体系结构,就可以对Oracle数据库有一个整体认识,这样有利于后续Oracle的学习.下面 ...

  6. 分享-动态性能表详解

    从IT-PUB上down下来的一些关于oracle的动态性能表的总结,在大家对oracle进行性能调整和瓶颈检查会有很大的帮助的,不是我写的,在此拿出来跟博客园的朋友分享,共同进步!       一个 ...

  7. 学习动态性能表 第五篇--V$SESSION

    学习动态性能表 第五篇--V$SESSION  在本视图中,每一个连接到数据库实例中的session都拥有一条记录.包括用户session及后台进程如DBWR,LGWR,arcchiver等等. V$ ...

  8. oracle查询不走索引全表扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景-Oracle...

    使用索引快速全扫描(Index FFS)避免全表扫描的若干场景 什么使用使用Index FFS比FTS好? Oracle 8的Concept手册中介绍: 1. 索引必须包含所有查询中参考到的列. 2. ...

  9. 跨平台表空间传输(摘自eygle《循序渐进Oracle》)

    需要注意的是,在Oracle 10g之前,数据文件是不能够跨平台传输使用的,从Oracle 10g开始,Oracle支持跨平台的表空间传输,这极大地增强了数据迁移的便利性. 1.  字节顺序和平台 数 ...

最新文章

  1. 先使用皮尔逊相似性特征选择来训练随机森林
  2. “IIS配置401错误”完美解决方案
  3. 最喜欢的 jQuery 插件
  4. php水平垂直居中,html水平垂直居中的问题
  5. linux下批量转换语音采样率(8000Hz)
  6. 5.1 计算机网络之传输层(传输层提供的服务及功能概述、端口、套接字--Socket、无连接UDP和面向连接TCP服务)
  7. 关于arraylist的扩容机制
  8. 判断字符串出栈合法性
  9. k均值聚类算法优缺点_Grasshopper实现K均值聚类算法
  10. matlab将模型解封装,模型保护 - MATLAB Simulink - MathWorks 中国
  11. JDBC与JNDI应用比较
  12. sql server调试_使用SQL Server扩展事件来调试应用程序
  13. 麦克纳姆轮全向移动机器人纵向直线运动分析
  14. 定时任务schedule(spring boot )
  15. 手机归属地查询接口,手机号查3大运营商的归属地信息接口
  16. Windows重装Ubuntu 20.04单系统
  17. 前端内容安全策略(csp)
  18. 毕业实习笔记——WRF模式入门(Cygwin版)
  19. 计算机芯片级维修包括哪些,计算机芯片级维修1
  20. 逻辑与计算机设计基础实验报告,逻辑与计算机设计基础--课实验的报告.doc

热门文章

  1. 安装openstack_午餐前如何安装OpenStack Cloud
  2. jaxb xml配置_JAXB和Log4j XML配置文件
  3. owin 怎么部署在云中_使用Boxfuse轻松在云中运行Spring Boot应用程序
  4. deprecated_@Deprecated新外观可能是什么?
  5. junit:junit_简而言之,JUnit:测试结构
  6. spring集成jndi_Spring应用程序与JNDI连接池的集成测试
  7. Apache Spark中的自定义日志
  8. Java的@Serial批注
  9. Spring MVC中@RequestParam和@PathVariable批注之间的区别?
  10. Java 9中的进程处理