gpt4 book ai didi

sql - Oracle中无网络传输的真实查询执行时间

转载 作者:行者123 更新时间:2023-12-03 09:26:33 25 4
gpt4 key购买 nike

是否可以无需通过网络传输数据来确定 SELECT 执行时间?

我正在尝试优化远程服务器上的查询,该服务器实际上距离我大约 1000 英里,即使获取少量数据也需要几分钟才能到达这里。

SQL Developer 告诉我执行时间,其中包括网络传输时间。与“设置计时”情况相同。

我对 SELECT * FROM v$sql(area) 的结果感到非常困惑。即使更改执行的查询,此结果仍然相同。 Oracle 文档提到 ELAPSED_TIME 列,它包括解析/执行/获取时间,并且这些结果以某种方式累积。

那么问题来了:有没有什么直接的方法可以获取服务器上查询的实际执行时间?没有网络传输时间,无论查询是否被缓存。没有平均值,没有估计。只是具体一次查询执行的时间。

提前致谢

最佳答案

Oracle 查询执行采用生产者-消费者设计模式。如果网络连接“卡住”,则 Oracle session 进程会被操作系统阻止。为了避免网络延迟的影响,您必须直接在数据库服务器上执行SQL查询(通过sqlplus或通过PL/SQL)。

建议: 忘记时间作为优化指标 - 查看缓冲区获取和磁盘读取,这将告诉您在评估查询时必须处理多少内存页。该指标对于当前数据库服务器负载是不变的(独立)。

如果网络往返产生大量开销,请尝试更改接口(interface)。通过使用集合、嵌套表或复杂类型,您可以减少网络等待量。

关于sql - Oracle中无网络传输的真实查询执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com