在 oracle 中有什么方法可以确定 sql 查询将花费多长时间来获取整个记录以及它的大小,而无需实际执行和等待整个结果。
我使用普通的 Oracle SQL 选择(不是数据泵/导入等)反复下载并向用户提供数据。有时行数以百万计。
最佳答案
除非你运行它,否则不会知道实际运行时间,但你可以尝试估计它..
- 首先你可以做解释计划只解释,这将不运行查询——根据你当前的统计,它会或多或少地告诉你它将如何执行
- 这不会有实际的时间和精力从数据 block 中读取数据..
- 你有大块吗
- 此架构是否针对查询/报告进行了规范化/反规范化?
- 有多大的行适合放在同一个 block 中,所以只需要 1 次提取?
您期望的行数
- 基于数据量 * 您的网络延迟
基于此你可以尝试估算时间
关于sql - 在不实际执行查询的情况下确定 Oracle 查询执行时间和建议的数据大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29940412/