问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么查看用户的SQL执行历史

发布网友 发布时间:2022-04-07 21:20

我来回答

2个回答

懂视网 时间:2022-04-08 01:42


Rem Copyright (c) 2004, 2005, Oracle. All rights reserved.  
Rem
Rem    NAME
Rem      ashrpt.sql
Rem
Rem    DESCRIPTION
Rem      This script defaults the dbid and instance number to that of the
Rem      current instance connected-to, then calls ashrpti.sql to produce
Rem      the ASH report.
Rem
Rem    NOTES
Rem      Run as select_catalog privileges.  
Rem
Rem      If you want to use this script in a non-interactive fashion do
Rem      something like the following:
Rem
Rem      Say for example you want to generate a TEXT ASH Report for the
Rem      past 30 minutes in /tmp/ashrpt.txt, use the following SQL*Plus script:
Rem
Rem        define report_type = ‘text‘; -- ‘html‘ for HTML
Rem        define begin_time  = ‘-30‘;  -- Can specify both absolute and relative 
Rem                                     -- times. Look in ashrpti.sql for syntax.
Rem        define duration    = ‘‘;     -- NULL defaults to ‘till‘ current time
Rem        define report_name = ‘/tmp/ashrpt.txt‘;
Rem        @?/rdbms/admin/ashrpt
Rem
Rem      If you want to generate a HTML ASH Report using AWR snapshots 
Rem      imported from other databases or AWR snapshots from other instances
Rem      in a cluster, use a SQL*Plus script similar to the following:
Rem
Rem        define dbid        = 1234567890; -- NULL defaults to current database
Rem        define inst_num    = 2;          -- NULL defaults to current instance
Rem        define report_type = ‘html‘;     -- ‘text‘ for TEXT
Rem        define begin_time  = ‘-30‘;
Rem        define duration    = ‘‘;         -- NULL defaults to ‘till current time‘
Rem        define report_name = ‘/tmp/ashrpt.txt‘;
Rem        define slot_width  = ‘‘;
Rem        define target_session_id   = ‘‘;
Rem        define target_sql_id       = ‘‘;
Rem        define target_wait_class   = ‘‘;
Rem        define target_service_hash = ‘‘;
Rem        define target_module_name  = ‘‘;
Rem        define target_action_name  = ‘‘;
Rem        define target_client_id    = ‘‘;
Rem        define target_plsql_entry  = ‘‘;
Rem        @?/rdbms/admin/ashrpti
Rem
Rem      If you want to generate a HTML ASH Report for times between 9am-5pm today
Rem      in /tmp/sql_ashrpt.txt and want to target the report on a particular
Rem      SQL_ID ‘abcdefghij123‘, use a script similar to the following:
Rem
Rem        define dbid        = ‘‘;       -- NULL defaults to current database
Rem        define inst_num    = ‘‘;       -- NULL defaults to current instance
Rem        define report_type = ‘html‘;   -- ‘text‘ for TEXT
Rem        define begin_time  = ‘09:00‘;
Rem        define duration    = 480;      -- 9-5 == 8 hrs or 480 mins
Rem        define report_name = ‘/tmp/sql_ashrpt.txt‘;
Rem        define slot_width  = ‘‘;
Rem        define target_session_id   = ‘‘;
Rem        define target_sql_id       = ‘abcdefghij123‘;
Rem        define target_wait_class   = ‘‘;
Rem        define target_service_hash = ‘‘;
Rem        define target_module_name  = ‘‘;
Rem        define target_action_name  = ‘‘;
Rem        define target_client_id    = ‘‘;
Rem        define target_plsql_entry  = ‘‘;
Rem        @?/rdbms/admin/ashrpti
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    adagarwa    06/24/05 - added plsql_entry target
Rem    veeve       05/11/05 - add support for slot_width input
Rem    veeve       01/17/05 - add support for report targets
Rem    veeve       06/24/04 - added more NOTES
Rem    veeve       06/10/04 - veeve_ash_report_r2
Rem    veeve       06/04/04 - Created
Rem


--
-- Get the current database/instance information - this will be used 
-- later in the report along with bid, eid to lookup snapshots


set echo off heading on underline on;
column inst_num  heading "Inst Num"  new_value inst_num  format 99999;
column inst_name heading "Instance"  new_value inst_name format a12;
column db_name   heading "DB Name"   new_value db_name   format a12;
column dbid      heading "DB Id"     new_value dbid      format 9999999999 just c;


prompt
prompt Current Instance
prompt ~~~~~~~~~~~~~~~~


select d.dbid            dbid
     , d.name            db_name
     , i.instance_number inst_num
     , i.instance_name   inst_name
  from v$database d,
       v$instance i;


Rem
Rem Define slot width and all report targets to be NULL here, 
Rem so that ashrpti can be used directly if one or more 
Rem report targets need to be specified.
define slot_width = ‘‘;
define target_session_id = ‘‘;
define target_sql_id = ‘‘;
define target_wait_class = ‘‘;
define target_service_hash = ‘‘;
define target_module_name = ‘‘;
define target_action_name = ‘‘;
define target_client_id = ‘‘;
define target_plsql_entry = ‘‘;


Rem ashrpti.sql now
@@ashrpti


-- Undefine all variables declared here
undefine inst_num
undefine inst_name
undefine db_name
undefine dbid
undefine slot_width
undefine target_session_id
undefine target_sql_id
undefine target_wait_class
undefine target_service_hash
undefine target_module_name
undefine target_action_name
undefine target_client_id
undefine target_plsql_entry


--
-- End of file

ashrpt.sql

标签:

热心网友 时间:2022-04-07 22:50

如何知道一个session都执行过哪些SQL语句?(查看当前比较容易,历史的呢?怎么复原sql的执行场景——事务关系、执行序列、单SQL还是存储过程)

【方法一】查询v$sqltext、v$sqlarea、v$sqlstats视图
select * from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('schema') order by t.LAST_ACTIVE_TIME desc;
#对v$sqltext、v$sqlarea查看的是shared pool中的SQL,其时间索引是其解析历史,因为共享的问题这个查询可能并不能完整地反映出执行的历史。
#v$sqlstats信息保留时间比v$sql、v$sqltext、v$sqlarea长,及时SQL已经换出shared pool仍然可查到
【方法二】
联合v$active_session_history和v$sqlarea
#v$active_session_history 这个表只是个取样数据,按秒进行,只有在那一秒采样点处于on cpu或非idle等待的session统计在内。所以可能会不全,有些执行很短的SQL会忽略。这个视图无法还原完整的session历史。
#v$sqlarea中有执行过的SQL语句,但并无到session的关联信息,v$session中只关联了当前的sql,所以也不行。
查看视图:dba_hist_sqlstats、dba_hist_sqltext(历史数据)

【方法三:session trace】

SQL> execute dbms_session.session_trace_enable(true,true);
PL/SQL procere successfully completed.
SQL> select count(*) from dba_hist_sqltext;
COUNT(*)
----------
478
SQL> select * from V$sesstat where rownum=1;
SID STATISTIC# VALUE
---------- ---------- ----------
134 0 1
SQL> execute dbms_session.session_trace_disable();
PL/SQL procere successfully completed.
$ cd $ORACLE_HOME/admin/test/ump
$ ls -lrt
$ tkprof test_ora_2195620.trc report.txt sys=no explain=no aggregate=yes
$ more report.txt --这个文件包括了启停trace之间所有SQL语句的执行信息,执行计划、统计
【方法四:logminer】
只包含DML与DDL语句,不能查询select语句。另外需要开启supplemental logging,默认是没有开启的。
conn / as sysdba
--安装LOGMINER
SQL> @$ORACLE_HOME/rdbms/admin/dbmslmd.sql;
SQL> @$ORACLE_HOME/rdbms/admin/dbmslm.sql;
SQL> @$ORACLE_HOME/rdbms/admin/dbmslms.sql;
SQL> @$ORACLE_HOME/rdbms/admin/prvtlm.plb;

--开启附加日志
alter database add supplemental log data;

--模拟DML操作
conn p_chenming/...
SQL> select * from test2;
SQL> insert into test2 values(7,77);
SQL> commit;

conn / as sysdba
--切归档
SQL> alter system switch logfile;
SQL> select name,dest_id,thread#,sequence# from v$archived_log; --最后一个即为新的归档

--新建LOG MINER
SQL> execute dbms_logmnr.add_logfile(logfilename=>'/oracle/archive_10g/test/test_1_138_786808434.arc',options=>dbms_logmnr.new);
--开始miner
SQL> execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
--查看结果
SQL> col username format a8;
SQL> col sql_redo format a50
SQL> select username,scn,timestamp,sql_redo from v$logmnr_contents where table_name='TEST2';
SQL> select username,scn,timestamp,sql_redo from v$logmnr_contents where username='P_CHENMING';
--关闭MINER
SQL> execute dbms_logmnr.end_logmnr;
--关闭辅助日志
SQL> alter database drop supplemental log data;
【总结】
查看v$sqlarea只能查看粗略的历史,因为很多SQL是共享的。
查看ASH也不全,因为这是采样数据。
查看TRACE应该是最完整的,但需要在执行SQL前开启。
查看logminer不能查看select语句,而且默认的系统没有开启supplementing log,所以能查看的内容有限。
怎么查看用户的SQL执行历史

【方法一】查询v$sqltext、v$sqlarea、v$sqlstats视图 select * from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('schema') order by t.LAST_ACTIVE_TIME desc;对v$sqltext、v$sqlarea查看的是shared pool中的SQL,其时间索引是其解析历史,因为共享的问题这个查询可能并不能完整地反映出执行的历...

在ORACLE中怎么查看SQL执行日志

1.打开SQLDeveloper工具,你可以通过菜单栏找到它,点击进入。接着,进入工具后,找到并使用以下方法查看SQL历史记录:2.在二级菜单中,可以直接选择"SQL历史记录"选项,或者通过快捷键F8快速打开相关窗口。默认情况下,历史记录会在下方的小窗口中显示。不过,这个窗口可以进行调整以提高查询效率。只需在窗口...

怎么查看用户的SQL执行历史

查看用户的SQL执行历史的语句如下:select * from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('用户名') order by t.LAST_ACTIVE_TIME desc select * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc 注意 :执行此语句等等一些相关的语句 必须具有DBA 的权限 虽然这条语句很普通 但是需...

如何查询最近执行的sql怎么查询执行

cat~/.mysql_history即可以看到以前的命令历史。如何查询mysql的执行记录?--打开sql执行记录功能setgloballog_output=TABLE ;--输出到表setgloballog=ON;--打开所有命令执行记录功能general_log,所有语句:成功和未成功的.setgloballog_slow_queries=ON;--打开慢查询sql记录slow_log,执行成功的:慢查询语...

在ORACLE 中怎么查看SQL 执行日志

1、首先打开oracle sql developer工具,没有此工具的可以去百度浏览器下载安装即可,鼠标点击查看菜单。2、在二级菜单中,选择SQL历史记录选项,或者按快捷键F8打开窗口。3、默认打开是会显示在最下方的小窗口,在标题栏双击鼠标左键,即可最大化窗口,再次双击左键还原窗口。4、最大化窗口之后,便于更好...

plsql如何查看计入改变或提交的sql

plsql查看计入改变或提交的sql方法:1、使用PLSQL自带的SQL历史记录功能,可以查看最近执行过的SQL语句,包括修改或提交的语句。2、使用PLSQL自带的会话浏览器功能,可以查看当前会话或其他会话的详细信息,包括执行中或已执行的SQL语句。

oracle执行历史查不到执行sql

1、在Oracle中,如果需要查看SQL执行历史,需要使用SQL跟踪功能。如果没有开启 SQL 跟踪功能,执行SQL的历史记录将无法被记录下来。2、执行SQL的历史记录已经过期,在Oracle中,可以配置历史记录保留时间,如果历史记录保留时间已过,那么执行SQL的历史记录将被删除。您可以检查历史记录保留时间是否已过期。3、...

怎么查看用户的SQL执行历史

用profiler.exe可以对数据库进行实时跟踪,这个是sql server management studio 的工具

如何查找PL/SQL执行过的历史SQL语句呀

如果你的窗口没有关闭的话,右边有个上下的箭头,点一下向上的箭头就ok了 要是关闭了可以查看会话sessions,里边有详细的sql运行记录,但是比较麻烦

如何查看mysql执行的所有以往 sql 语句历史命令

mysql 有这样一个机制,就是,在用户的主目录下会生成一个.mysql_history 的文件,这个文件会记录用户登录mysql后,在mysql中敲过的每条命令。cat ~/.mysql_history 即可以看到以前的命令历史。

历史被执行人和被执行人 不能在用户态执行的是 什么用户执行力率调整 管理用户程序执行的程序 用户当前正在执行的窗口称为 用户态可以执行什么指令 不能在用户态执行的指令 用户态下执行的指令 历史被执行人什么意思
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
亲爱的热爱的韩商言佟年分手是在第几集 韩商言佟年为什么分手 佟年第几集和妈妈吵架 韦德球衣退役什么时候举行 韦德退役最后一场比赛对手是哪支球队 手机拍led屏有波纹怎么处理 厦门周末什么银行开门 二十四点24710怎么算 2、2、7、10算二十四点 10 7 7 2算二十四点 小学生怎么算二十四点721010? 华为nova6后台全民k歌应用怎么开启设置? 华为nova65g怎么弄出刚刚使用过的程序? 请问华为nova6锁屏之后可以从底部向上滑有计算器怎么取消? 华为nova怎么关闭应用 新买的外置声卡我没说话,放着歌麦克风自己就把电脑的音效录进去了。 手机直播森然二代外置声卡怎么打开混响让对方听到,内放在哪里?谢谢! 创新5.1外置声卡怎么打开内放功能 创新外置声卡,怎么打开内放?谁会调,能教我一下吗? 客所思pk1外置声卡内放怎么调 客所思外置声卡怎么开关内放 今天是你瞧不起的人明天是你惹不起的神求图片 雨巷 图片一张 怌中有雪的歌词,要字的不要图片 求图片!!!在雨巷里一位沧桑的老婆婆在看路过的一位穿旗袍的女子,记得还有一把油纸伞在青石板上 请给我一个古典女子撑着油纸伞在雨巷中走过的图片 初音未来穿和服拿油纸伞的图片 寻一张像《雨巷》中撑着油纸伞的女郎的图? 求两张壁纸,一个女的撑着油纸伞,图片里面还有三只小鸟,好像是一个 中国的安利为什么那么贵,美国的安利在当地那么便宜,我实在搞不懂? 有知道的朋友可以说说嘛? 国内除了安利,还有比较类似的比较正规的直销企业么 Excel中如何汇总多表数据? Excel教程:如何快速汇总不同作业表的数据 Excel中如何把汇总表内容批量填入个表中去? 有没有播放器破解版 内购 比如爱奇艺 (爱奇艺有) 别的推荐推荐 只有有 我下载了能用 QQ音乐破解版在哪里下载 win10怎么应用商店闪退修复 Win10应用商店闪退如何解决 vr近视眼不戴眼镜可以玩吗 win10下应用商店闪退怎么办 不用vr眼镜,直接用手机播放vr视频,是不是黑屏的? win10应用商店闪退会自动修复好吗 没有vr眼镜怎么看vr vr虚拟现实 不用眼镜 能看么 vr小电影 如果没有vr眼镜看什么效果 移动vr产品可观看哪些形态的内容 我不用vr眼镜看vr视频很流畅,但是用vr眼镜看就开始卡,是怎么回事? 我现在不带vr眼镜通过调节眼睛可以看vr电影,不知道对眼镜有没有影响。以前经常看3d隐藏图片,练出来的。 希壤app要用vr眼镜吗? 全民K歌上,怎样在好友主页上看到好友的访客记录呢? vr一定要用vr软件看么