【发布时间】:2013-12-15 13:18:16
【问题描述】:
是否可以确定 SELECT 执行时间没有跨网络数据传输?
我正在尝试优化我们在远程服务器上的查询,该服务器实际上距离我大约 1000 英里,即使获取少量数据也需要几分钟才能到达这里。
SQL Developer 告诉我执行时间,包括网络传输时间。 'set timing on'的情况相同。
我真的很困惑SELECT * FROM v$sql(area) 的结果。
即使更改已执行的查询,此结果仍然相同。 Oracle 文档中提到 ELAPSED_TIME 列,它包括解析/执行/获取时间,并且这些结果以某种方式累积。
那么问题来了:有没有什么直接的方法可以在服务器上获取查询的实际执行时间?没有网络传输时间,无论查询是否被缓存。没有平均值,没有估计。 具体执行一次查询的时间。
提前谢谢
【问题讨论】:
-
我的意思不是来自 EXPLAIN PLAN 的计划成本
-
连接数据库服务器(SSH),打开sqlplus并执行查询。
-
或者,创建一个 PL/SQL 过程,将您的选择放入其中并执行该过程。您将以这种方式通过网络传输最少的数据。您甚至可以调用作业来运行该过程。
-
尝试
autotrace使用sqlpluspsoug.org/reference/autotrace.html
标签: sql oracle select oracle-sqldeveloper