asp.net网站开发上,上海集团网站建设,泉州网站建设制作,南城网站建设价格按照OracleDocument中的描述#xff0c;v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sOracle 学习动态性能表 v$locked_object本视图列出系统上的每个事务处理所获得的所有锁。V$LOCKED_OBJECT中的列说明#xff1a;XIDUSN…按照OracleDocument中的描述v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sOracle 学习动态性能表 v$locked_object本视图列出系统上的每个事务处理所获得的所有锁。V$LOCKED_OBJECT中的列说明XIDUSN回滚段号XIDSLOT槽号XIDSQN序列号OBJECT_ID被锁对象IDSESSION_ID持有锁的sessionIDORACLE_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_timefrom v$locked_object t1, v$session t2where t1.session_id t2.sid order by t2.logon_time;如果有长期出现的一列可能是没有释放的锁。我们可以用下面SQL语句杀掉长期没有释放非正常的锁alter system kill session sid,serial#;Oracle 学习动态性能表 v$lockedV$LOCK这个视图列出Oracle 服务器当前拥有的锁以及未完成的锁或栓锁请求。如果你觉着session在等待等待事件队列那你应该检查本视图。如果你发现session在等待一个锁那么按如下先后顺序使用V$LOCK找出session持有的锁。使用V$SESSION找出持有锁或等待锁的session执行的sql语句。使用V$SESSION_WAIT找出什么原因导致session持有锁堵塞。使用V$SESSION获取关于持有锁的程序和用户的更多信息。V$LOCK中的常用列SID表示持有锁的会话信息。TYPE表示锁的类型。值包括TM和TX等。LMODE表示会话等待的锁模式的信息。用数字06表示和表1相对应。REQUEST表示session请求的锁模式的信息。ID1,ID2表示锁的对象标识。公共锁类型在Oracle数据库中DML锁主要包括TM锁和TX锁其中TM锁称为表级锁TX锁称为事务锁或行级锁。当Oracle执行DML语句时系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后系统再自动申请TX类型的锁并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志而只需检查TM锁模式的相容性即可大大提高了系统的效率。TM锁包括了SS、SX、S、X等多种模式在数据库中用06来表示。不同的SQL操作产生不同类型的TM锁如下表1。TX行级锁事务锁在改变数据时必须是排它模式(mode 6)。每一个活动事务都拥有一个锁。它将在事务结束(commit/rollback)时释放。如果一个块包括的列被改变而没有ITL(interested transaction list)槽位(entries)那么session将锁置于共享模式(mode 4)。当session获得块的ITL槽位时释放。当一个事务首次发起一个DML语句时就获得一个TX锁该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行DML语句时第一个会话在该条记录上加锁其他的会话处于等待状态。当第一个会话提交后TX锁被释放其他会话才可以加锁。指出回滚段和事务表项。按下列项以避免竞争避免TX6类型竞争需要根据您的应用而定。避免TX4类型竞争可以考虑增加对象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 SIDID1, ID2, TYPE V$LOCK ID1, ID2, TYPEID1 DBA_OBJECTS OBJECT_IDTRUNCID1/65536) V$ROLLNAME USN如果session在等待锁这可被用于找出session持有的锁。可被用于找出DML锁类型的被锁对象(typeTM)可被用于找出行级事务锁(TYPETX)使用中的回滚段不过需要通过V$TRANSACTION连接查询得到。表1 Oracle的TM锁类型锁模式锁描述解释SQL操作0none1NULL空Select2SS(Row-S)行级共享锁其他对象只能查询这些数据行Select for update、Lock for update、Lock row share3SX(Row-X)行级排它锁在提交前不允许做DML操作Insert、Update、Delete、Lock row share4S(Share)共享锁Create index、Lock share5SSX(S/Row-X)共享行级排它锁Lock share row exclusive本条技术文章来源于互联网如果无意侵犯您的权益请点击此处反馈版权投诉本文系统来源php中文网