oracle 获取曾经执行过的SQL语句执行计划
时间: 2023-11-25 18:05:49 浏览: 35
在Oracle中,您可以使用v$sql视图来获取曾经执行过的SQL语句和执行计划信息。v$sql视图中包含了所有曾经执行过的SQL语句的相关信息,包括SQL文本、执行计划、执行时间等。
以下是一个基本的查询v$sql视图的示例:
```
SELECT sql_text, plan_hash_value, executions, elapsed_time/1000000 AS elapsed_time_secs
FROM v$sql
WHERE sql_text LIKE '%your_sql_statement%'
ORDER BY elapsed_time_secs DESC;
```
这个查询会返回所有包含"your_sql_statement"的SQL语句的执行计划信息,按照执行时间从长到短排序。
注意,如果您想获取最新的执行计划信息,需要使用v$sql_plan视图,它包含了当前正在执行的SQL语句的执行计划信息。
相关问题
Oracle数据库中查看执行计划的sql语句
在 Oracle 数据库中,您可以使用 `EXPLAIN PLAN` 命令来查看 SQL 查询的执行计划。具体步骤如下:
1. 在 SQL Developer 或 SQL*Plus 等工具中打开一个会话。
2. 输入以下 SQL 查询,并在末尾添加 `EXPLAIN PLAN FOR`:
```sql
SELECT * FROM your_table WHERE condition;
EXPLAIN PLAN FOR SELECT * FROM your_table WHERE condition;
```
3. 执行以上语句,Oracle 数据库会生成一个执行计划并存储在 `PLAN_TABLE` 表中。
4. 输入以下 SQL 查询来查看执行计划:
```sql
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
```
该语句将会显示执行计划的详细信息,包括操作类型、访问方法、操作顺序、估计行数、估计成本等。如果您想要获取详细的统计信息,可以在 `DISPLAY` 函数中添加 `ALL` 参数,如下所示:
```sql
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE', 'ALL'));
```
这将显示更详细的信息,例如实际行数、实际成本、CPU 和 I/O 使用情况等。
oracle执行sql文件的sql语句
Oracle执行SQL文件的SQL语句如下:
```
@path/to/sql/file.sql;
```
其中,`path/to/sql/file.sql` 是SQL文件所在的路径。在SQL*Plus中执行该语句后,会自动读取SQL文件中的SQL语句并执行。注意,该语句只能在SQL*Plus中使用,不能在PL/SQL Developer等其他工具中使用。