oracle 查看正在执行的SQL
时间: 2023-08-11 14:04:43 浏览: 53
你可以使用以下查询来查看正在执行的SQL语句:
```sql
SELECT s.sid, s.serial#, s.sql_id, t.sql_text
FROM v$session s
JOIN v$sqltext t ON s.sql_address = t.address
WHERE s.status = 'ACTIVE';
```
这将返回正在执行的所有会话的会话ID,序列号,SQL ID以及相应的SQL文本。你可以使用这些信息来了解正在执行的SQL语句。
相关问题
Oracle查看正在执行的sql
要查看Oracle数据库中正在执行的SQL语句,可以使用以下语句:
```
SELECT
s.sid,
s.serial#,
s.username,
s.osuser,
s.machine,
s.program,
s.status,
s.sql_id,
s.sql_child_number,
sql.sql_text
FROM
v$session s,
v$sql sql
WHERE
s.sql_id = sql.sql_id(+)
AND s.status = 'ACTIVE';
```
该语句将返回所有当前正在执行的SQL语句的详细信息,包括会话的SID和序列号、用户名、操作系统用户、机器、程序、会话状态、SQL_ID和SQL语句的文本。如果SQL_ID为NULL,则表示该会话当前没有运行任何SQL语句。
oracle 查看历史sql执行
要查看Oracle数据库中历史SQL执行的记录,可以通过以下两种方式:
1. 通过Oracle提供的视图v$sqlarea查询历史SQL执行情况,该视图中包含了所有正在执行或已经执行完成的SQL语句的信息。可以使用以下SQL语句查询历史SQL执行情况:
```
SELECT sql_text, executions, elapsed_time/1000000
FROM v$sqlarea
WHERE parsing_schema_name = 'your_schema_name'
AND sql_text LIKE '%your_search_text%'
ORDER BY elapsed_time/1000000 DESC;
```
其中,`parsing_schema_name`为指定查询的模式名,`sql_text`为SQL语句,`executions`为SQL语句执行次数,`elapsed_time`为SQL语句执行所需时间。
2. 通过Oracle提供的跟踪工具Oracle Trace来查看历史SQL执行情况。Oracle Trace可以记录SQL语句的执行情况、执行时间、执行计划等信息。可以通过以下步骤开启Oracle Trace:
- 使用SQL*Plus登录数据库,并执行以下SQL语句:
```
ALTER SESSION SET SQL_TRACE=TRUE;
```
- 执行需要跟踪的SQL语句。
- 执行以下SQL语句,停止跟踪:
```
ALTER SESSION SET SQL_TRACE=FALSE;
```
- 在Oracle数据库的跟踪目录中,可以找到包含跟踪信息的跟踪文件。可以使用跟踪工具如TKPROF来分析跟踪文件并查看历史SQL执行情况。