
sqlnet.oraserver 文件—automatic_ipc
sqlnet.oraclient 文件—break_poll_skip
tnsnames.ora文件—SDU, TDU
listener.ora文件—SDU, TDU, 以及queuesize 这些优化参数只影响Oracle *Net层的性能。现在让我们仔细地查看这些参数,以及这些参数如何被调整以提高Oracle *Net.
在缺省的情况下,Oracle *Net在传送数据之前一直等待,直到缓冲区填满。所以请求一般不会立即发送它们的目的地。当大量数据从一端流往另一端时候,这种情况很常见。添加一个protocol.ora文件,然后指定一个tcp.nodelay停止缓冲溢出延迟,都可以解决这一问题。 protocol.ora文件可以被指定以显示所有TCP/IP执行中的数据。这一参数可用于服务端和客户端。protocol.ora声明为: tcp.nodelay = yes 指定这一参数使得TCP缓冲被跳过,以致可以立即发送每一个请求。然而请注重,网络通讯量会增大,因为更小的,更快的信息包被传递,所以会导致网络速度的减慢。 tcp.nodelay参数只有在TCP超时产生的时候才被使用。设置tcp.nodelay可以提高数据库服务器之间的大量数据通讯的性能。 sqlnet.ora中的automatic_ipc参数 automatic_ipc参数忽略了网络层,所以加快了数据库的逻辑连接。当automatic_ipc=on,Oracle *Net查看当地数据库是否定义以相同的名称,假如是,网络层将被忽略,因为此时的连接被直接转译为当地的IPC连接。这对于数据库服务器是有用的,但对于Oracle *Net客户端是没有什么用处。 只有当一个Oracle *Net连接于当地数据库的时候,automatic_ipc参数才有可能使用在数据库服务器上。假如不需要当地连接,将这一参数设置为off,由此可以提高所有Oracle *Net客户端的性能。 tnsnames.ora和listener.ora中的SDU和TDU参数 SDU(session data unit)和TDU(transport date unit)都位于tnsnames.ora and listener.ora文件中。SDU指定信息包的大小以传送到网络。在理想情况下,SDU不会超过MTU(maximum transmission unit)的大小。MTU是一个固定值,它取决于使用的实际网络操作。Oracle建议SDU设置相同于MTU. 注重 在7.3.3之前,SDU和TDU都固定于2K而且不能改变。 TDU是使用于Oracle *Net分组数据的缺省信息包。在理想情况下,TDU参数应该是SDU参数的倍数。SDU和TDU的缺省值为2,048,最大值都为32,767字节。