oracle sql如何知道哪部分查询耗时较长

标签 sql oracle performance

我有一个大型脚本,用于获取有关员工的信息,该脚本由多个表之间的大量查找和联接组成,我想知道,我是否可以知道脚本的哪一部分或哪个查找需要更多时间并使脚本非常慢,所以我只能调整它,而不是尝试调整整个脚本,直到找出哪个脚本给我带来了麻烦。

我使用的是 Oracle 11g。

提前致谢。

最佳答案

使用EXPLAIN PLAN找出执行工作流程,以及查询中最消耗部分的位置。例如,如果您使用 SQL Developer,则可以运行以下命令:

explain plan for
<your query>

然后运行:

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

它将以表格格式为您提供结果,如下所示: enter image description here

您可以查看时间和成本以及操作类型。例如,每当您看到“全表扫描”时,它就是一个红色标志。

关于oracle sql如何知道哪部分查询耗时较长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39324248/

相关文章:

java - Hibernate - 枚举与整数

sql - 使用批量插入在 oracle 中的表之间移动大数据

java - jdbc数据集是否将所有行存储在jvm内存中

c++ - 每次执行时都会计算两个常量的乘积吗?

performance - 为什么这个版本的矩阵复制这么慢?

.net - 字典的关键性能

mysql - 如何优化mysql查询?

sql - 加速特定查询的方法

sql - 如何按天汇总数据并仍然遵守时区?

mysql - 在我们更新 Mysql 版本时需要使用 @ 更改 MYSQL 查询