首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何查看以普通用户身份执行的实际Oracle SQL语句

要查看以普通用户身份执行的实际Oracle SQL语句,可以通过以下几种方法:

1. 使用V$SQL视图

Oracle数据库提供了一个动态性能视图V$SQL,可以用来查看当前正在执行的SQL语句及其相关信息。

代码语言:txt
复制
SELECT sql_text, executions, rows_processed
FROM v$sql
WHERE username = 'YOUR_USER_NAME';

2. 使用V$SESSION视图

V$SESSION视图包含了当前所有会话的信息,可以通过它来找到特定用户的会话,并进一步查看执行的SQL语句。

代码语言:txt
复制
SELECT s.username, s.sid, s.serial#, sql_text
FROM v$session s
JOIN v$sqlarea a ON s.sql_address = a.address AND s.sql_hash_value = a.hash_value
WHERE s.username = 'YOUR_USER_NAME';

3. 使用AUDIT_TRAIL

Oracle的审计功能可以记录用户的SQL操作。需要在数据库中启用审计功能,并指定要审计的操作。

代码语言:txt
复制
AUDIT SELECT TABLE BY ACCESS;
AUDIT INSERT TABLE BY ACCESS;
AUDIT UPDATE TABLE BY ACCESS;
AUDIT DELETE TABLE BY ACCESS;

然后可以通过以下查询查看审计记录:

代码语言:txt
复制
SELECT username, action_name, sql_text
FROM dba_audit_trail
WHERE username = 'YOUR_USER_NAME';

4. 使用DBMS_MONITOR包

DBMS_MONITOR包可以用来监控会话的SQL执行情况。

代码语言:txt
复制
BEGIN
  DBMS_MONITOR.SESSION_TRACE_ENABLE(session_id => &sid, serial_num => &serial#, waits => TRUE, binds => FALSE);
END;
/

之后可以通过查看跟踪文件来获取SQL语句。

5. 使用Oracle Enterprise Manager (OEM)

如果你的环境中有Oracle Enterprise Manager,可以通过图形界面查看用户的SQL活动。

注意事项

  • 查看这些信息可能需要相应的权限。
  • 审计功能可能会对性能产生影响,使用时需要谨慎。
  • 在生产环境中查看SQL语句时,应注意保护敏感信息不被泄露。

通过上述方法,你可以有效地监控和分析普通用户执行的SQL语句,这对于性能调优和安全审计都是非常有用的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MySQL查看实时执行的SQL语句

    MySQL默认不能实时查看执行的SQL语句,因为这会消耗一定的资源。 要开启这个功能,稍微配置一下,打开这个LOG记录就可以了。 1 查看LOG功能 首先,查看是否已经开启实时SQL语句记录。...语句功能,并指定自定义的log路径: mysql> SET GLOBAL general_log = 'ON'; mysql> SET GLOBAL general_log_file = '/var/...说明:这个文件会随着访问的增加而不断变大,所以生产环境建议临时开启,用完及时关闭。...3 实时查看 过一小段时间后,就可以导出查看/var/lib/mysql/sql_statement.log文件了,里面记录了所有执行的SQL语句。...如果要实时查看该文件的改动,在Linux系统用tail命令: $ tail -f /var/lib/mysql/general_sql.log 另外,也可以用BareTail软件实时查看。

    5.1K20

    mysql查看执行过的历史sql语句

    最近协助某团队开发一个电商系统项目,甲方公司外采一套某品牌面向C端的私域电商系统,别处现低价购买了一套B端商城系统做的二开,原团队离职无法联系,缺少数据字典和API接口文档;现甲方新增需求:1)C端产品更新需同步到...B端,2)B端订单需要同步到一套ERP系统;3)订单管理、财务结算、物流配置需要全部在erp中实现;为了提交开发效率,打算用最传统的方法:通过在被同步端按人工录入一次数据,记录一次执行sql语句,即方便...查看mysql日志状态,日志路径show variables like 'general_log%'开启日志记录:set GLOBAL general_log=on关闭日志记录set GLOBAL general_log...chrome自带翻译,查看更方便。...早年某培训机构推荐过一个php版本的日志查看工具,因换电脑忘记名称,有知道的欢迎推荐给我,谢谢!

    12310

    MySQL使用技巧: 如何查看mysql正在执行的SQL语句

    MySQL使用技巧: 如何查看mysql正在执行的SQL语句 背景: 最近项目开发用到MySQL,想要查看后台执行的sql语句,立马google得知、可以使用 show processlist; 命令来解决...,通过里面输出结果的字段解释中可以分析执行了的sql语句类型,但发现不太适合一般的初级使用者,而通过日志文件查看sql语句是最直接的方法。.../log.txt1    log=d:/mysql/data/log.txt 3:如此就可以记录所有的mysql执行的sql语句!  ...state列,显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,state只是语句执行中的某一个状态,  一个sql语句,已查询为例,可能需要经过copying to tmp...table,Sorting result,Sending data等状态才可以完成,   info列,显示这个sql语句,因为长度有       限,所以长的sql语句就显示不全,但是一个判断问题语句的重要依据

    8.1K20

    MySQL性能优化-查看执行慢的SQL语句

    MySQL性能优化-查看执行慢的SQL语句 查看执行慢的SQL语句,需要先开启慢查询日志 默认情况下,MySQL数据库没有开启慢查询日志 慢日志常用配置项 #是否启用慢查询日志 slow_query_log...= ON #指定慢查询日志文件位置及名称 slow_query_log_file = /var/lib/mysql/my-slow.log #慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s...long_query_time = 10 #日志文件中的显示时区 log_timestamps = SYSTEM #慢查询日志输出目标,默认为file,即输出到文件 log_output = FILE...查看是否开启慢查询日志 show variables like '%slow_query_log%'; 查看慢查询日志存放文件位置 show variables like '%slow_query_log...,超过此时间会记录,默认为10,单位为s long_query_time = 10 #日志文件中的显示时区 log_timestamps = SYSTEM #慢查询日志输出目标,默认为file,即输出到文件

    15310

    SQL 查看SQL语句的执行时间 直接有效的方法

    在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能。 通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。...介绍如下: SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。 ...SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。 ...SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件。...语句示例: SET STATISTICS PROFILE ON; SET STATISTICS IO ON; SET STATISTICS TIME ON; GO /*--你的SQL脚本开始*/

    1.4K10

    Oracle 历史SQL语句执行计划的对比与分析

    对于此情形,我们可以比对SQL语句的历史执行计划进行分析是何种原因导致SQL变慢或执行计划发生变化。下面通过例子来模拟SQL执行计划变异的情形。...查看sql语句的执行计划 --该视图记录了所有被awr快照捕获的所有历史sql的执行计划以及执行计划的生成时间 scott@SYBO2SZ> run sql_plan_his 1 SELECT id...脚本,请参考:Oracle 测试常用表BIG_TABLE b、alter table move 方式用于实现段收缩,移动高水位,但不会释放申请的空间,以及导致索引失效 c、对于历史SQL语句,需要执行...通常是由于awr阀值设置所致,可参考:Oracle AWR 阙值影响历史执行计划 e、历史SQL语句的执行计划也可以通过$ORACLE_HOME/rdbms/admin/awrsqrpt.sql来生成txt...或html文件 f、引起同一SQL执行计划发生变化的情形很多,如统计信息的缺失,索引失效,不同级别的参数发生变化等 h、对于实例,会话,语句级别环境变化导致同一SQL执行计划发变异,也可以对此跟踪。

    1.2K10

    一条SQL语句是如何执行的?

    一条SQL语句是如何执行的? 首发于GitHub开源项目: Java超神之路 你好,我是杜少雄。 今天和大家聊一聊MySQL的基础架构。我们经常说,看一个事千万不要直接陷入细节里。应该先鸟瞰全貌。...当一条SQL语句执行的时候,我们看到的是最后的执行结果。却不知道这条语句在MySQL内部是如何执行的。 总览 所以今天我们把MySQL拆解一下,看看里边有哪些零件。下边是MySQL的基本架构示意图。...在完成经典的 TCP 握手后,连接器就要开始认证你的身份,这个时候用的就是你输入的用户名和密码。...之前执行过的语句及其结果可能会以 key-value 对的形式,被直接缓存在内存中。key 是查询的语句,value 是查询的结果。...小结 今天介绍了 MySQL 的逻辑架构,希望你对一个 SQL 语句完整执行流程的各个阶段有了一个初步的印象。 由于篇幅的限制,我只是用一个查询的例子将各个环节过了一遍。

    1.1K50

    SQL语句在MySQL中是如何执行的

    mysql> select * from T where ID=10; 开门见山,当我们输入一条 SQL 语句的时候,MySQL 内部究竟执行了什么?...MySQL 拿到一个查询语句,会先查询缓存,先校验这个语句是否执行过,以 key-value 的形式存在内存里, Key 是查询预计,Value 是结果集。...Mysql 查询不建议使用缓存,因为对于经常更新的数据来说,缓存的有效时间太短了,往往带来的效果并不好,对于不经常更新的数据来说,使用缓存还是可以的,Mysql 8.0 版本后删除了缓存的功能,官方也是认为该功能在实际的应用场景比较少...分析器 如果没有命中缓存,那么就进入分析器,主要就是分析 SQL 语句是拿来干嘛,也就是解析该语句生成语法树,会分为两步: 第一步:词法分析, 一条 SQL 语句有多个字符串组成,首先要提取关键字,比如...优化器的作用就是它认为的最优的执行方案去执行(虽然有时候也不是最优),比如多个索引的时候该如何选择索引,多表查询的时候如何选择关联顺序等。

    4.4K20

    一条 SQL 语句是如何执行的

    连接器的作用就是校验用户权限 2、查询缓存 MySQL 中有个缓存的概念,当你在执行一条 SQL 查询语句时,MySQL 会先去缓存中查看是否有对应的记录,如果有,则直接返回,如果没有,则取数据库中查询...这个查询缓存的目的是为了加快 MySQL 查询速度。 这里建议你将这个缓存的选项关闭上,因为在实际项目中,这个查询缓存用处不大,为什么这么说。...对于 select 语句而言,MySQL 拿到这条 SQL 语句后,识别出 select 关键词,知道这是一条查询语句,然后再取识别 from 以及表名,识别字段,这个步骤是词法分析。...词法分析完成后还需要进行语法分析,也就是判断这条语句的语法是否正确,比如你 select 写成了 selct,那么语法分析就会检验出来 4、优化器 优化器职责是对 sql 语句进行优化,比如这条语句该用什么索引...有权限则开始扫描行,查看是否满足条件,满足条件的结果放入结果集中。

    67020

    经典案例:如何优化Oracle使用DBlink的SQL语句

    所以,今天向大家分享一下,一次针对Oracle中使用DBLINK的SQL语句的优化思路分析过程。 发现问题 首先从EMCC监控上,发现一条SQL语句执行好长时间没有执行完毕。 ?...远程库上查看内联视图r的数据量 由于远程表的执行计划在本地库上无法查看,那么我们到远程库上查询一下原SQL语句的内联视图r,看看到底有多少数据。 在远程库上做如下操作。 ?...第2行的”NESTED LOOPS”操作实际返回行196K,也就是SQL语句中的最外层select count(*)操作; 第7行的”TABLE ACCESS BY USER ROWID”操作也是实际返回行...后来,他根据业务的需求改写了原来的SQL,整个改写后的SQL语句如下图所示。 ? 查看带统计信息的执行计划,如下图所示。 ?...第三天,再次查看相应时间段的DBLINK等待事件总数,发现与原来相比已经降低了很多。 ? 再查看SQL_ID为a50rh3659p44q的SQL在相应对间段的执行次数,见下图。 ?

    3.1K90
    领券