Results 1 to 3 of 3
  1. #1
    Join Date
    Dec 2003
    Location
    Duesseldorf - Germany - Europe - Earth - Galaxy
    Posts
    18

    Unanswered: TNS Packet Size in ORACLE

    Hello,

    since we have moved our hardware to another location with a wide area network between clients and servers we experience a performance that ist really bad. A network specialist recently traced the E2E-Communication and claimed that a lot of small frames were exchanged between Client and Server, a lot of communication occurs with the full RTT in each step.

    With DB2 we do not encounter this problem. I've had a look at the payload of the oracle/tns frames and found a "normal" behaviour. It seemed to be a catalog lookup for a dynamic query or query by example where a cursor was processed. The client sends a frame with a small payload that might have been a "fetch" in any binary form. The server replied another small packet with the name of a column from an application table, the next "fetch" from the client until the server returns the message that no more data were found.

    With DB2 we have bound all applications including ODBC drivers with "BLOCKING ALL" as it is written in the documentation. That means, that each network frame contains as many data as possible and the fetch is processed locally by the client (except for FOR UPDATE OF cursors). So the full size of the EN-frame can be used and there are a lot of RTT cycles less.

    Is there a possibility to configure a kind of "cursor blocking" with oracle, too?

    Regards,
    Volker.

  2. #2
    Join Date
    Nov 2002
    Posts
    833
    is it the SDU parameter you are looking for in your tnsnames.ora; respectively listener.ora?

  3. #3
    Join Date
    Dec 2003
    Location
    Duesseldorf - Germany - Europe - Earth - Galaxy
    Posts
    18
    No, not quite ;-)

    We've seen that each row is sent by at least one frame. In case the row is shorter than the payload possible the frame is shorter.

    A lot of short frames with acknowledge do cause a bad performance in case the rtt grows. Our rtt grew from 1ms to 5ms, what increases the time needed for the whole query.

    DB2 can pack multiple rows in one frame (CURSOR BLOCKING) so the number of frames is much less than at oracle. So the rtt is not added to the time needed for retrieving each single row.

    The sdu already is set to a value that perfectly fits in our frame size.

    Regards,
    Volker.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •