database - 在查询之前找到粗略时间的算法

标签 database oracle

有没有人知道或想到脚本或工具,它会告诉粗略估计“查询需要多长时间will take to execute" ,就像我们将windows中的文件复制到某个外部设备时,它给出了大致估计的时间,复制将需要的时间。 谁能想到根据解释计划创建任何算法?。 我不知道这是否是提出此类问题的正确论坛。但我想到了这个问题,所以我问了。

最佳答案

查询计划的 TIME 列已经为您提供了优化器对耗时的估计

SQL> select *
  2    from table( dbms_xplan.display );

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |    14 |   546 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| EMP  |    14 |   546 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------

8 rows selected.

显然,优化器的估计肯定是不正确的。但这通常意味着对象的统计数据在某种程度上是不正确的。假设您的算法将使用相同的统计数据,您的估计似乎不太可能更准确。

关于database - 在查询之前找到粗略时间的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13824582/

相关文章:

php - Codeigniter - 只能在 autoload.php 中加载模型

java - 使用数组调用 PL/SQL 存储过程

oracle - 如何在 OWB11gR2(Oracle Warehouse Builder) 中应用补丁

database - 具有不同 SID 的 Oracle 导出数据库

php - MySQL,使用内部联接的更新查询静默失败

java - Spring Boot 数据库只初始化一次

mysql - 数据结构

java - 安全的 JDBC 连接

Java Springboot Hibernate 设置 Oracle 数据库 session 参数

sql - 使用单个 SQL 同步两个表