Slow startup when using Access 2 workgroup file
Article ID: SFKB0022
Last Reviewed:   May 11, 1998
Applies To:   SPEED Ferret 3.0  (SPEED Ferret for Access 97/VB5)

Symptoms

After starting SPEED Ferret for Access 97, the hourglass appears for a period of 45-60 seconds before the splash screen appears.


Cause

The database was opened using an Access 2 workgroup (system.mda) file instead of an Access 97 (system.mdw) file.


Background

At startup, SPEED Ferret looks at the permissions for each database object to determine whether or not you are permitted to make modifications to the objects. Specifically, SPEED Ferret retrieves the value of the AllPermissions property of each Document object contained in the database.

The AllPermissions property returns the user's effective permissions taking into account all of the user's group memberships and the permissions that those groups possess. The AllPermissions property was introduced in Access 95, along with the system.mdw file format. The performance hit occurs because the system.mda file format is not optimal for computing the AllPermissions property.

The following subroutine can be used to demonstrate this behavior:

Declare Function GetTickCount Lib "Kernel32" () As Long
Sub SpeedCheck()
  Dim DB As DAO.Database
  Dim C As DAO.Container
  Dim Doc As DAO.Document
  Dim Perms As Long
  Dim t As Long
  t = GetTickCount()
  Set DB = CurrentDb
  For Each C In DB.Containers
    For Each Doc In C.Documents
      Perms = Doc.AllPermissions
    Next
  Next
  Debug.Print GetTickCount - t
End Sub

A test was performed using an Access 97 database containing fewer than 100 objects, with both a system.mdw file and a system.mda file. Each workgroup file contained only a few groups. More groups would have increased the cost of computing AllPermissions.

Using an Access 97 workgroup (system.mdw) file:

  • first execution: 2333 msec.
  • subsequent executions: 410 msec.

Using an Access 2 workgroup (system.mda) file:

  • first execution: 4566 msec.
  • subsequent executions: 2904 msec.


Conclusions

SPEED Ferret retrieves the AllPermissions property of every database object at startup. This process can be much more time consuming when using an Access 2 workgroup than when using an Access 97 workgroup.


Workaround

This appears to be a limitation of the Access 2 workgroup file format. To avoid the performance penalty, you will need to use an Access 97 workgroup (system.mdw) file.