Enhanced Performance
Our goal for SourcePro DB is to bring performance as close as possible to native API performance benchmarks. Product features that specifically enhance performance include:
*Optimized database access. To save overhead, SourcePro DB accesses the database only when necessary or when specifically requested. See Database Tables.
*Bulk reads and writes. Your SourcePro DB applications can read arrays of values at once, rather than simply scalar values one at a time. If your underlying database supports this feature, processing data is dramatically faster. See Chapter 8, Bulk Reading and Writing.
*Caching. You can significantly enhance performance by explicitly setting cache size in RWDBReader and RWDBInserter, or by using schema caching through RWDBEnvironmentHandle. See their respective class descriptions, and Chapter 9, Caching, of this User’s Guide.
*Asynchronous processing. Your SourcePro DB applications can continue processing while waiting for I/O, if this feature is also supported by your database vendor API. See Chapter 12, Asynchronous Usage.
*Dynamic SQL. You can enhance transaction-level performance by binding variables to SQL statements using the class RWDBBoundExpr. This eliminates costly rebinding and reparsing from recurring executions, and enhances the performance of inserting, deleting, and updating. See the class description for RWDBBoundExpr in the Reference Guide.
*Multithreading. Applications that share objects of SourcePro DB across threads can use the internal mutex of objects to control database access with member functions acquire() and release(). A technique involving a user-supplied guard class ensures that acquire() and release()are called in pairs. See The Guard Class with Templates.
SourcePro DB is multithread-safe.