首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle中相同SQL语句的不同响应时间

Oracle中相同SQL语句的不同响应时间
EN

Stack Overflow用户
提问于 2018-11-21 11:05:53
回答 1查看 210关注 0票数 0

我正在我的数据库中运行一个简单的select语句(使用putty从远程计算机连接)。我从putty连接到SQLPLUS,并执行select语句。但是每次运行查询时都会得到不同的响应时间。这是我的观察结果。

1)启用跟踪(10046)。对于每次查询的执行,跟踪文件中的"elapsed_time“是不同的。

2)控制台上显示的时间与跟踪文件中显示的时间有很大的差异。从Putty看,经过的时间大约是。2-3秒。而记录在跟踪中的经过时间显示的时间是1秒.putty控制台上经过的时间与跟踪文件日志之间有什么不同?

Putty控制台输出:

从WWSH_TEST.T01DATA_LINK中选择*

选择了489043行。

经过:00:02:57.16

Tracefile输出:

从WWSH_TEST.T01DATA_LINK中选择*

代码语言:javascript
复制
call      count      cpu    elapsed     disk    query current    rows
----    -------  -------  --------- -------- -------- -------  ------
Parse         1     0.00       0.00        0        0       0       0 
Execute       1     0.00       0.00        0        0       0       0 
Fetch     32604     0.38       2.32    10706    42576       0  489043

在putty控制台上,经过的时间显示为2.57秒,而在跟踪文件中,经过的时间是2.32秒。为什么我们会看到这种差异?

此外,当我重复运行同一SQL语句时,可以在跟踪文件中看到不同的运行时间(范围从2.3到2.5秒)。当数据库完全没有变化时,响应时间的差异可能是什么原因呢?

数据库版本: 11.2.0.3.0

EN

回答 1

Stack Overflow用户

发布于 2018-11-26 04:38:11

看起来时间差是“客户端处理”--基本上是sqlplus格式化输出所花费的时间。而且,您的数组大小看起来是15。尝试使用更大的数组大小运行,例如512或1024。

设置数组大小的机制因客户端而异。以平方米为单位:

代码语言:javascript
复制
set arraysize 1024

获取时间不包括网络时间,但如果使用8级跟踪

代码语言:javascript
复制
alter session set events '10046 trace name context forever, level 8';

这将给你等待事件。需要查找的是来自客户端的SQL*Net消息,这基本上是数据库等待被要求执行某些操作的时间,例如获取下一组行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53410756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档