Large rows: the PRGRS_MINBUF option
- Last Updated: January 17, 2024
- 1 minute read
- OpenEdge
- Version 12.8
- Documentation
Some data rows can be very large; for example, in a
MS SQL Server database, rows often have large fields such as IMAGE and MEMO.
The ODBC protocol specifies a dynamic buffer allocation process
for handling large rows that do not initially fit into clients'
buffers; however, some drivers do not yet follow the correct ODBC
protocol and do not handle these large rows correctly. Use the -Dsrv PRGRS_MINBUF,size option
to force a minimum buffer size. For example, -Dsrv PRGRS_MINBUF,15000 enables
the DataServer to handle 15K rows even with drivers that fail to
follow the ODBC protocol.
The optimal setting for PRGRS_MINBUF is the
size of the largest record data size plus 500 bytes. This can prevent
run-time record expansion during the retrieval of query results.
Do not use this option when the -Dsrv BINDING switch is set to 3. With the
binding set to 3, the size of the data is known, and this switch will cause the allocation
of unneeded additional memory.
It is often difficult to determine when there is a buffer size problem and how to choose
the correct value for PRGRS_MINBUF. Be careful when using this option.