|
DBISAM Performance Tips

- Turn off anti-virus software, or configure it to NOT scan .DAT, .IDX, .BLB files (or simply your database directory), the directory specified by Session.PrivateDir, etc.
- Live queries (RequestLive = True) will be faster than canned queries assuming the query will support a live result.
- Speed of queries with JOINs can sometimes be improved by doing manual optimization of the SQL and using NOJOINOPTIMIZE at the end.
- Turning OFF StrictChangeDetection may improve speed.
- Try increasing the Session buffers: MaxTableDataBufferSize, MaxTableDataBufferCount, MaxTableIndexBufferSize, MaxTableBlobBufferSize, MaxTableBlobBufferCount
- Set Session.ForceBufferFlush to False and selectively call FlushBuffers on each table or query only when required.
- Set Session.PrivateDir to a directory on a local hard drive, not a network drive.
- Ensure your table's indexes match the fields being used for query JOIN, WHERE and ORDER BY clauses. Make sure you have one index per field used in the WHERE clause or Filter criteria.
- If using case-insensitive indexes, convert WHERE clause arguments to upper-case by specifying the UPPER() function and add NOCASE to the ORDER BY clause.
- For local access or shared file access on a LAN (non client/server), set the table or query .BlockReadSize to a higher value when reading sequentially through a dataset without editing. For client/server access (either LAN or internet), set the table or query .RemoteReadSize to a higher value for these operations.

|
|