sql - 在不实际执行查询的情况下确定 Oracle 查询执行时间和建议的数据大小

标签 sql database oracle oracle11g

在 oracle 中有什么方法可以确定 sql 查询将花费多长时间来获取整个记录以及它的大小,而无需实际执行和等待整个结果。

我使用普通的 Oracle SQL 选择(不是数据泵/导入等)反复下载并向用户提供数据。有时行数以百万计。

最佳答案

除非你运行它,否则不会知道实际运行时间,但你可以尝试估计它..

  1. 首先你可以做解释计划只解释,这将运行查询——根据你当前的统计,它会或多或少地告诉你它将如何执行
  2. 这不会有实际的时间和精力从数据 block 中读取数据..
  3. 你有大块吗
  4. 此架构是否针对查询/报告进行了规范化/反规范化?
  5. 有多大的行适合放在同一个 block 中,所以只需要 1 次提取?
  6. 您期望的行数

  7. 基于数据量 * 您的网络延迟

基于此你可以尝试估算时间

关于sql - 在不实际执行查询的情况下确定 Oracle 查询执行时间和建议的数据大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29940412/

相关文章:

php - 准备好的声明不起作用

sql - 我无法弄清楚的 PostgreSQL 错误

mysql - 从 MySQL 5.0 迁移到 5.1 的原因

ORACLE - 已授予创建过程但无法创建过程

wcf - 带有 Web 应用程序的 Oracle Instant Client

mysql - 为什么这个 SQL 查询会花很长时间?

mysql - phpmyadmin不会创建数据库

database - 尝试创建扩展时出现 PostgreSQL 错误

Java 结果集 : Does the DB only update if updateRow is called?

mysql - 什么会导致 InnoDB 表的单个 UPDATE 性能非常低?