Reduced Locking

To improve multiuser performance, the locking algorithms in Microsoft Jet 3.5 were modified in two areas:

Write locks on index pages When a Microsoft Jet 3.0 database uses enforced referential integrity, Microsoft Jet always places a write lock on any index page that is being read. This prevents other users from changing data in the index that might be needed to enforce referential integrity. The disadvantage of this is that write locks on a series of index pages prevent other users from using the index to read data.

In Microsoft Jet 3.5, this is resolved by replacing the write locks on index pages that are not being modified with read locks. This allows Microsoft Jet to continue to enforce referential integrity while still allowing other users to read the index pages.

Read locks on long value (LV) data pages LV pages typically contain fields with the Memo, Long Binary (OLE Object), and Hyperlink and data types. In Microsoft Jet 3.0, a read lock is placed on every LV page that is being read. The primary reason for using read locks is to ensure that the user sees unchanged data when reading large LV pages.

Because many users use a field with the Memo data type that has only a minimal amount of data stored in it and because LV data that does not span more than one page does not require read locks, Microsoft Jet 3.5 eliminates read locks on those LV pages. This substantially reduces concurrency conflicts and improves performance.