当前位置:北库历史网>神话故事>正文

vsession历史信息 vsession历史信息

导语:以下文字资料由边肖为大家收集并出版。让我们快速看看他们!如何查询会话执行的历史sql语句如何知道一个会话中执行了哪些SQL语句?[方法1]查询v$sqltext、v$sqlarea和v$sqlstats视图从v $ sqlarea中选择* t,其中t. parsing _ schema _ name按t. last _ active _ timedesc的顺序排列;#对于v$sqltext和v$s

以下文字资料由边肖为大家收集并出版。让我们快速看看他们!

如何查询会话执行的历史sql语句

如何知道一个会话中执行了哪些SQL语句?[方法1]查询v$sqltext、v$sqlarea和v$sqlstats视图从v $ sqlarea中选择* t,其中t. parsing _ schema _ name按t. last _ active _ timedesc的顺序排列;#对于v$sqltext和v$sqlarea,查看的是共享池中的SQL,其时间索引是其解析历史,因为由于共享的问题,这个查询可能无法完全反映执行历史。#v$sqlstats的信息保留时间比v$sql、v$sqltext和v$sqlarea长。时间上,SQL已经被换出共享池,仍然可以发现[方法2]结合了v$active_session_history和v $ sqlarea # v $ active _ session _ history。这个表只是采样数据,每秒进行一次,也只有在那一秒,采样点在等待cpu或者不空闲。所以可能不完整,会忽略一些短时运行的SQL。此视图无法还原完整的会话历史记录。#v$sqlarea中有已执行的sql语句,但没有与会话的关联信息,只有当前的SQL与v $会话关联,所以也不会起作用。检查视图:dba_hist_sqlstats、dba_hist_sqltext。

如何查找Oracle会话的历史记录

1.检查性能最差的前100个SQL select * from row num execute DBMS _ session . session _ trace _ enable;PL/SQL过程已成功完成。SQL >从dba_hist_sqltext中选择countCOUNT - 478SQL >从V$sesstat中选择*其中row num = 1;SID statistical # VALUE---134 0 1Sql >执行DBMS _ session . session _ trace _ disable;PL/SQL过程已成功完成。$ CD $ ORACLE _ HOME/admin/test/Udump $ ls-lrt $ tkproftest _ ora _ 2195620 . trcreport . txt sys = no explain = no aggregate = yes $ more report . txt-此文件包括跟踪开始和停止之间所有SQL语句的执行信息、执行计划和统计信息。[方法4: logminer]只包含DML和DDL语句,不能查询select语句。此外,需要打开补充日志记录,默认情况下不会打开。conn/assysdba-install log miner SQL > @ $ Oracle _ home/RDBMS/admin/dbmslmd . SQL;SQL > @ $ ORACLE _ HOME/RDBMS/admin/db mslm . SQL;SQL > @ $ ORACLE _ HOME/RDBMS/admin/DBMS LMS . SQL;SQL > @ $ ORACLE _ HOME/RDBMS/admin/prvtlm . plb;-打开附加日志变更数据库添加补充日志数据;-模拟DML操作conn p _陈明/。SQL >从test2中选择*;SQL >插入到test2值中;SQL > mitConn/as sysdba -剪切存档SQL >更改系统开关日志文件;SQL >从v$archived_log中选择名称、dest_id、线程号、序列号;-最后一个是新的存档-create logminer SQL > executeddbms _ logmnr。add _ logfile-start miner SQL > execute DBMS _ log mnr。start _ logmnr-检查结果SQL> col用户名格式A8;SQL> col sql_redo format a50 SQL >从v$logmnr_contents中选择username,s,timestamp,sql_redo,其中table _ name = ' TEST2SQL >从v$logmnr_contents中选择username,s,timestamp,sql_redo,其中username = ' P _陈明';-关闭minersql > executedbms _ logmnr。end _ logmnr-关闭辅助日志SQL >更改数据库删除辅助日志数据;

如何查看PL/SQL执行历史

除了PL/SQL的ctrl+e view方法外,还有以下方法:[方法1] query v$sql,v$sqltext,v$sqlarea,v $ sqlstats view select * from v $ sqlarea t其中t. parsing _ schema _ name按顺序由t. last _ active _ timedesc#对于v$sqltext和v$sqlarea,查看的是共享池中的SQL,其时间索引是其解析历史,因为由于共享的问题,这个查询可能无法完全反映执行历史。#v$sqlstats反映了实例启动的sql执行统计信息,sql语句本身比v$sqltext/area更完整,因为后者可能无法交换出缓存。[方法2]将v$active_session_history与v $ sqlarea # v $ active _ session _ history结合起来只是对数据进行采样,以秒为单位进行,只统计采样点在cpu上或者没有等待空闲的会话。所以可能不完整,会忽略一些短时运行的SQL。此视图无法还原完整的会话历史记录。#v$sqlarea中有已执行的sql语句,但没有与会话的关联信息,只有当前的SQL与v $会话关联,所以也不会起作用。从v$sqlstat可以查看数据库启动的所有SQL信息,但是没有时序关系,没有执行用户信息,只有执行次数和资源统计。AWR快照之间的SQL统计可以从dba_hist_sqlstat中看到。与v$sqlstats相比,它不受实例重启的影响,因为v$sqlstats中的信息在实例重启后被清除。[方法3:会话跟踪] SQL >执行DBMS _ session . session _ trace _ enable;PL/SQL过程已成功完成。SQL >从dba_hist_sqltext中选择countCOUNT - 478SQL >从V$sesstat中选择*其中row num = 1;SID statistical # VALUE---134 0 1Sql >执行DBMS _ session . session _ trace _ disable;PL/SQL过程已成功完成。$ CD $ ORACLE _ HOME/admin/test/Udump $ ls-lrt $ tkproftest _ ora _ 2195620 . trcreport . txt sys = no explain = no aggregate = yes $ more report . txt-此文件包括跟踪开始和停止之间所有SQL语句的执行信息。执行计划和统计[方法4: logminer]只包含DML和DDL语句,不能查询select,另外需要打开补充日志,默认不打开。conn/assysdba-install log miner SQL > @ $ Oracle _ home/RDBMS/admin/dbmslmd . SQL;SQL > @ $ ORACLE _ HOME/RDBMS/admin/db mslm . SQL;SQL > @ $ ORACLE _ HOME/RDBMS/admin/DBMS LMS . SQL;SQL > @ $ ORACLE _ HOME/RDBMS/admin/prvtlm . plb;-打开附加日志变更数据库添加补充日志数据;-模拟DML操作conn p _陈明/。SQL >从test2中选择*;SQL >插入到test2值中;SQL > mitConn/as sysdba -剪切存档SQL >更改系统开关日志文件;SQL >从v$archived_log中选择名称、dest_id、线程号、序列号;-最后一个是新的存档-create logminer SQL > executeddbms _ logmnr。add _ logfile-start miner SQL > execute DBMS _ log mnr。start _ logmnr-检查结果SQL> col用户名格式A8;SQL> col sql_redo format a50 SQL >从v$logmnr_contents中选择username,s,timestamp,sql_redo,其中table _ name = ' TEST2SQL >从v$logmnr_contents中选择username,s,timestamp,sql_redo,其中username = ' P _陈明';-关闭minersql > executedbms _ logmnr。end _ logmnr-关闭辅助日志SQL >更改数据库删除辅助日志数据;【总结】查看v$sqlarea只能查看粗略历史,因为很多SQL是共享的。检查ASH不全,因为是采样数据,测试的时候基本不查询SQL。查看V$sqlSTATS,可以看到所有执行的SQL及其执行统计,但是没有时间顺序,也没有用户信息。检查跟踪应该是最完整的,但是它需要在运行SQL之前打开。check logminer无法检查select语句,默认系统不打开补充日志,所以可以检查的内容有限。也许有审计方法。我没有测试他们。每种方法都有自己的缺陷,所以似乎很难有一个完整的方法来查看SQL执行历史

如何查看PL/SQL执行历史

除了PL/SQL的ctrl+e view方法外,还有以下方法:[方法1] query v$sql,v$sqltext,v$sqlarea,v $ sqlstats view select * from v $ sqlarea t其中t. parsing _ schema _ name按顺序由t. last _ active _ timedesc#对于v$sqltext和v$sqlarea,查看的是共享池中的SQL,其时间索引是其解析历史,因为由于共享的问题,这个查询可能无法完全反映执行历史。#v$sqlstats反映了实例启动的sql执行统计信息,sql语句本身比v$sqltext/area更完整,因为后者可能无法交换出缓存。[方法2]将v$active_session_history与v $ sqlarea # v $ active _ session _ history结合起来只是对数据进行采样,以秒为单位进行,只统计采样点在cpu上或者没有等待空闲的会话。所以可能不完整,会忽略一些短时运行的SQL。此视图无法还原完整的会话历史记录。#v$sqlarea中有已执行的sql语句,但没有与会话的关联信息,只有当前的SQL与v $会话关联,所以也不会起作用。从v$sqlstat可以查看数据库启动的所有SQL信息,但是没有时序关系,没有执行用户信息,只有执行次数和资源统计。AWR快照之间的SQL统计可以从dba_hist_sqlstat中看到。与v$sqlstats相比,它不受实例重启的影响,因为v$sqlstats中的信息在实例重启后被清除。[方法3:会话跟踪] SQL >执行DBMS _ session . session _ trace _ enable;PL/SQL过程已成功完成。SQL >从dba_hist_sqltext中选择countCOUNT - 478SQL >从V$sesstat中选择*其中row num = 1;SID statistical # VALUE---134 0 1Sql >执行DBMS _ session . session _ trace _ disable;PL/SQL过程已成功完成。$ CD $ ORACLE _ HOME/admin/test/Udump $ ls-lrt $ tkproftest _ ora _ 2195620 . trcreport . txt sys = no explain = no aggregate = yes $ more report . txt-此文件包括跟踪开始和停止之间所有SQL语句的执行信息。执行计划和统计[方法4: logminer]只包含DML和DDL语句,不能查询select,另外需要打开补充日志,默认不打开。conn/assysdba-install log miner SQL > @ $ Oracle _ home/RDBMS/admin/dbmslmd . SQL;SQL > @ $ ORACLE _ HOME/RDBMS/admin/db mslm . SQL;SQL > @ $ ORACLE _ HOME/RDBMS/admin/DBMS LMS . SQL;SQL > @ $ ORACLE _ HOME/RDBMS/admin/prvtlm . plb;-打开附加日志变更数据库添加补充日志数据;-模拟DML操作conn p _陈明/。SQL >从test2中选择*;SQL >插入到test2值中;SQL > mitConn/as sysdba -剪切存档SQL >更改系统开关日志文件;SQL >从v$archived_log中选择名称、dest_id、线程号、序列号;-最后一个是新的存档-create logminer SQL > executeddbms _ logmnr。add _ logfile-start miner SQL > execute DBMS _ log mnr。start _ logmnr-检查结果SQL> col用户名格式A8;SQL> col sql_redo format a50 SQL >从v$logmnr_contents中选择username,s,timestamp,sql_redo,其中table _ name = ' TEST2SQL >从v$logmnr_contents中选择username,s,timestamp,sql_redo,其中username = ' P _陈明';-关闭minersql > executedbms _ logmnr。end _ logmnr-关闭辅助日志SQL >更改数据库删除辅助日志数据;【总结】查看v$sqlarea只能查看粗略历史,因为很多SQL是共享的。检查ASH不全,因为是采样数据,测试的时候基本不查询SQL。查看V$sqlSTATS,可以看到所有执行的SQL及其执行统计,但是没有时间顺序,也没有用户信息。检查跟踪应该是最完整的,但是它需要在运行SQL之前打开。check logminer无法检查select语句,默认系统不打开补充日志,所以可以检查的内容有限。也许有审计方法。我没有测试他们。每种方法都有自己的缺陷,所以似乎很难有一个完整的方法来查看SQL执行历史

甲骨文锁有历史记录吗

您好,过去的锁信息无法查询。

我写了几个SQL查询锁发生时会话占用的信息。

。这个sql可以找出锁表的会话信息和执行什么SQL。

SELECT /*+规则*/

LPAD)

l.oracle_username user_name,o.owner,o.object_name,

对象类型、样本号、序列号、数据库标识

FROM v$locked_object l,dba_objects o,v$session s

其中l.object_id = o.object_id和l.session_id = s.SID

DESC西都斯公司订单;

从v$sql中选择*其中sql_id='gfggpun2vtkqs '

该sql可以发现xxxsession正在等待xxxsession释放锁

选择“SID”| | L1 . SID | |“正在阻止”|| l2.sid正在阻止

从v$lock l1,v$lock l2

其中l1.block =1,l2.request > 0

和l1.id1=l2.id1

和l1.id2=l2.id2

免责申明:以上内容属作者个人观点,版权归原作者所有,不代表北库历史网立场!登载此文只为提供信息参考,并不用于任何商业目的。如有侵权或内容不符,请联系我们处理,谢谢合作!
上一篇:陈桥兵变 陈桥兵变 是赵匡胤顺应民意的举动 还是蓄谋已久的骗局下一篇:杨振宁比邓稼先缺什麽 杨振宁的父亲到死都没有原谅他放弃故国 杨振宁比邓稼先缺什麽 杨振宁的父亲到死都没有原谅他放弃故国

文章评论