FreeTDS User Guide: A Guide to Installing, Configuring, and Running FreeTDS | ||
---|---|---|
Prev | Chapter 8. Troubleshooting | Next |
FreeTDS is not slow. We know this because we've tested it. It's measurably slower than the vendors' products for some operations, but it's not noticeably slower and it's certainly no laggard. If your experience is different, if you're waiting 30 seconds for simple operations or minutes instead of seconds for for query results, something is up with your setup. There are two likely culprits.
Logging. If everything seems a bit sluggish, check to make sure logging is turned off. TDSDUMP
should not be defined, and there should be no dump file mentioned in freetds.conf. You can double-check by setting TDSDUMPCONFIG
temporarily, which will log only the startup process.
DNS. If connecting to the server takes 30 seconds or 1 minute, you could do worse than to check your resolv.conf. Use host or nslookup to confirm that FreeTDS can actually resolve the name/address you provided in freetds.conf. Give particular attention to reverse DNS lookups, if you were forced (or thought you were forced) to identify the server by number, instead of by name, as Vint intended. You can defeat FreeTDS's automatic reverse-DNS lookup feature by inserting
#define NOREVERSELOOKUPSin src/tds/config.c, rebuilding, and reinstalling.
![]() | Reverse lookup code has been removed as of version 0.62 due to wrong implementation. |
Packet size. Check packet size setting on freetds.conf (see initial block size). Default value (no configuration) is usually fine. The slowness is due to multiple packet to use. Under GNU/Linux system we use an optimization to reduce network traffic so you shouldn't see much difference using this system.