Managing global lists

Global lists provide an efficient way to display frequently-used list values by storing the list in system memory as a global variable. All applications can access the global list variable as needed without needing to query the database each time a control needs to display the list. However, the more items there are in a global list, the more costly the list is to system performance.

A global list has the following performance benefits.

  • Since a global list is stored in system memory, there is no need to query the back-end database for a list of values. Using a global list therefore reduces the amount of input and output traffic to the RDBMS.
  • Since a global list is available to all users logged into the system, there is no need to create conditional queries to grant access to the information. Using a global list therefore potentially reduces the number of queries needed to access a particular set of information.

When managing global list, keep in mind the following performance costs.

  • The server must send the entire list to the client each time the form is displayed. The more list items there are, the more network bandwidth it takes to transmit the list to the client.
  • The more users there are who can access the global list, the more often the server has to transmit the list to clients.
  • The server must periodically rebuild the list of values. The more items there are in the list, the more system resources it takes to rebuild the list

If you want to maximize your system performance, use the following guidelines to determine when to use global lists.

If there are a small number of options to choose from (for example, 32 or less options), then displaying a global list in a Combo Box control is typically the most efficient strategy. Since the list of options is small, you gain a performance improvement by skipping a query to the back-end database that a Comfill control would require. See Combo Box.

If there are large number of options to choose from (for example, 100 or more options), then displaying a list of values from a Comfill control linked to other records in the database is typically more efficient than a global list. Since a global list must always send the entire list of options to the client, the Comfill control has better performance because it can send one page worth of options to the client at a time. In addition, it is more efficient to add, update, or remove the related records a Comfill displays than it is to rebuild an entire global list each time you want to modify the list of values. See Comfill.