以下的规则适用于SDU和TDU:
# 设置的SDU值不能大于TDU,否则会浪费网络资源。
# 如果你的用户通过dial-up modem线来连接数据库,你应该将SDU和TDU设置为比较小的值,因为频繁的数据发送会有可能超过Modem传送的能力。
# 对于快速的网络连接(T1或T3线),你应该将SDU和TDU设置为相同于MTU。在标准的以太网,缺省的MTU大小设置为1,514字节。对于记号环网络,缺省的MTU大小为4,202字节。
# 如果使用一个多线程服务器(MTS),你必须使用正确的MTU TDU配置设置mts_dispatchers。
表A为一个记号环网络中这些参数使用的范例,其中MTU值为4,202。
SDU和TDU设置是影响不同主机之间的连接速度。对于快速T1线,设置SDU=TDU=MTU。对于比较慢的Modem线,应该设置为比较小的SDU和TDU值。
自从Oracle8i以来,数据库将自动注册listener.ora文件中的实例,除非你执行以下操作中的某一个:
# 无效化自动服务注册。所以,你必须将init.ora参数设置为local_listener,以使用一个TCP口。
# 在init.ora文件中执行MTS和定义mts_dispatchers,如下:
MTS_DISPATCHERS="(DESCRIPTION=(SDU=8192)(TDU=8192)\
ADDRESS=(PARTIAL=TRUE)(PROTOCOL=TCP)(HOST=supsund3)))\
(DISPATCHERS=1)"
# 在tnsnames.ora文件中的Connect_Data部分使用service_name=global_dbname,在这一文件中global_dbname设置为listener.ora。注意到这一设置将使TAF(Transparent Application Failover)无效化。对于更多的细节,请参考Oracle*Net 管理人员向导中的"配置TAF(Transparent Application Failover)"。
listener.ora中的queuesize参数
当Oracle建立一个连接时,存储的请求数量取决于非文档的queuesize参数。这一参数只使用于大型数据量的数据库。所期望的连接最大量与queuesize参数的大小相同。这里是listener.ora文件中这一参数使用的范例:
LISTENER =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = marvin)
(PORT = 1521)
(QUEUESIZE = 32)
)
)
这一参数的缺点是它为预先的请求预先分配资源,所以使用更多的内存和资源。当传送的数据量过大的时候,你可以考虑到使用MTS方法。同时注意到UNIX的某些版本不允许超过5的队列,对于MTS队列大小也有严格的限制。
sqlnet.ora中的break_poll_skip参数
只用于客户端的sqlnet.ora参数代表着要忽略的信息包的个数。这一参数影响着CPU资源。在缺省的情况下这一参数的值为4,采用以下方式可以改变这一参数值:
# break_poll_skip值越大,检测CTRL-C的频率越少,CPU消耗就超少。
# 相反的,break_poll_skip值越小,检测CTRL-C的频率越高,CPU消耗就超大。
外部网络优化
在这一网络相关的参数设置的简短讨论中,我为你提供的是对网络优化的复杂性的理解。Oracle *Net只是特定网络协议栈的OSI模型中的一个简单的层,所以所有的网络优化都是Oracle外部的操作,这一理解是相当重要的。
