对LINESIZE经过的时间的Oracle 11变量敏感度更改

时间:2016-05-25 02:00:22

标签: oracle oracle11g sqlplus

我已经阅读了有关LINESIZE的文档tuning SQLPlus,但我正在努力解决为什么一组oracle 11服务器在LINESIZE方面的行为与另一组oracle 11服务器的行为不同

运行以下查询会给我'奇怪'的经过时间变化。

SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE ROWNUM< 140000;

1.1。敏感服务器上的sqlplus

100   00:00:04.28 00:00:04.18 00:00:04.04
1000  00:00:06.48 00:00:06.37 00:00:06.32
10000 00:00:39.98 00:00:40.17 00:00:39.78

1.2。非敏感服务器上的sqlplus

100   00:00:04.90 00:00:04.93 00:00:04.77
1000  00:00:04.91 00:00:05.18 00:00:04.90
10000 00:00:05.79 00:00:05.54 00:00:05.74

SELECT OWNER,OBJECT_NAME FROM DBA_OBJECTS WHERE ROWNUM< 140000;

2.1。敏感服务器上的sqlplus

100   00:00:06.65 00:00:07.53 00:00:06.88
1000  00:00:07.84 00:00:08.27 00:00:08.24
10000 00:00:40.71 00:00:41.54 00:00:40.60

2.2。非敏感服务器上的sqlplus

100   00:00:07.91 00:00:07.15 00:00:07.69
1000  00:00:05.64 00:00:05.59 00:00:05.52
10000 00:00:06.27 00:00:06.37 00:00:06.34

我在运行这些查询时更改的唯一变量是LINESIZE设置。我重复运行相同的查询,LINESIZE设置为100,1000,10000。

我的主要问题是:为什么一组服务器似乎比更改LINESIZE更敏感。敏感服务器的范围从4s到40s,非敏感服务器的范围从4s到7s不等。

什么可以解释“敏感性”的这种差异?

观察2.2数字,我们看到“LINESIZE太小”引起的变化,较大的LINESIZE导致较短的经过时间(从100到1000)。 但为什么在2.1数字中看不到相同的效果。

注意:

  • 使用相同的sqlplus客户端报告相同的设置 通过SHOW ALL。

  • autotrace返回的Oracle统计信息实际上是相同的(没有订单 幅度变化)

  • Oracle Database 11g企业版11.2.0.3.0版 - 64位 生产

1 个答案:

答案 0 :(得分:0)

最后得到了这个令人厌烦的问题的底部。

我们使用的sqlplus客户端版本是:SQL * Plus:版本10.2.0.3.0 - 生产

将“敏感”与“非敏感”sqlplus主机分开的设置是NLS_LANG环境变量。 在非敏感的变量上没有设置变量,因此默认为AMERICAN_AMERICA.US7ASCII 在敏感的变量上,变量设置为AMERICAN_AMERICA.UTF8

知道要查找的内容后,会显示以下链接: https://community.oracle.com/thread/979446?tstart=0