我已经阅读了有关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位 生产
答案 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