如何查询oracle数据库的 *** 作记录

如何查询oracle数据库的 *** 作记录,第1张

查询视图:v$sqlarea,它是oracle中专门存储 *** 作的视图,可以通过它查询历史 *** 作。

授权某用户,查看动态性能视图的权限(如v$latch,v$lock,v$sqlarea,v$sql,v$sysstat)

grant select any dictionary to xxx

如通过以下查询语句就可以得知那个用户进行了删除 *** 作。

select t.SQL_TEXT, t.FIRST_LOAD_TIME

from v$sqlarea t

where t.SQL_TEXT like 'delete%' and t.FIRST_LOAD_TIME like '2013-03-30%'

order by t.FIRST_LOAD_TIME desc

方法和详细的 *** 作步骤如下:

1、第一步,查询该库中的所有表,测试sql,代码见下图,转到下面的步骤。

2、第二步,执行完上面的 *** 作之后,查询有多少个数据表,见下图,转到下面的步骤。

3、第三步,执行完上面的 *** 作之后,在TEST的开头编写一个查询表的脚本,每个表中的记录数,代码见下图,转到下面的步骤。

4、第四步,执行完上面的 *** 作之后,执行sql,在输出窗口中,可以看到每个表的输出,见下图。这样,就解决了这个问题了。

首先,向你介绍一个动态视图:v$sql

该视图展示最近一段时间所有执行过的sql语句:

select * from v$sql

即可。

如果报错找不到v$sql,一般是权限问题,换sysdba就肯定能查到。

但要注意的是“隐式sql”,很多sql语句是调用执行的,(比如,存储过程中对dbms包的调用,再如执行create 语句所触发的对系统表空间、数据字典的修改等等。),这些语句同样会展现在v$sql中。

还有其它与sql历史记录相关的v$视图,详情可以参考Oracle官方文档《Oracle® Reference》,直接给你个10.2的文档链接,够方便了吧:

http://www.oracle.com/pls/db102/homepage?remark=tahiti


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9422491.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存