Siebel Tools Reference > Performance Improvement >

Multi-Value Group Performance


Multi-value groups are a useful feature that permits the association of multiple records within a single parent record, such as a list of address records for an account or a list of sales team members for an opportunity. (Multi-value groups are described in Multi-Value Group and Association Applets.)

However, in most cases, you need to assign a primary ID field when configuring a multi-value group, or there could be serious performance consequences for list applets that are based on the business component. Multi-value groups without a primary ID field also have a performance impact on form applets that are based on the business component, although it is not as severe as the result for list applets.

A business component with a multi-value field (a field containing a multi-value group) has a one-to-many (or many-to-many) relationship with the records in the multi-value group. For this reason, when a list applet displays each record from a master business component (with no primary ID field defined), it must query all of that record's detail records to obtain a value to display in the multi-value field. The performance impact is considerable—the number of queries invoked is many times the number actually required.

When a primary ID field is defined in the master business component, it serves as a foreign key from each master record to one record in the detail business component. The primary ID field is used in a primary join to retrieve only one record when the master business component is queried. Only when the multi-value group is invoked by the user is the secondary query run to query the detail business component for the detail records of the current master record. In other circumstances, only one detail record is accessed for each master record.

The performance benefits of a primary join when a multi-value field is exposed on a form applet are not as considerable as for a list applet, but should still be considered. In the list applet, a large number of master records are accessed, each with its set of detail records. In a form applet, only one master record is accessed at a time. The presence of a primary ID field results in a single detail record being accessed for each new master record displayed, rather than multiple detail records. This can speed up the movement between master records in the form applet somewhat as the user moves between them.

There are some special circumstances in which configuring a primary join is not desirable or feasible:

In general, however, when a multi-value field is defined, a primary ID field should be defined for it.


 Siebel Tools Reference, Version 7.5, Rev. A 
 Published: 18 April 2003