INDICES= parameter
You can specify an INDICES= parameter on the PCB in the SENSEG statement, to specify a secondary index that contains search fields used to qualify SSAs for an indexed segment type.
The use of the INDICES= parameter does not alter the processing sequence selected for the PCB by the presence or absence of the PROCSEQ= parameter.
The INDICES= parameter is not supported if the primary database is a DEDB. The INDICES= parameter is not supported by Fast Path secondary index.
The following figure and code examples illustrate the use of the INDICES=parameter.

PCB
SENSEG NAME=COURSE, INDICES=SIDBD1
SENSEG NAME=STUDENT
GU COURSE COURSENM=12345&.XSTUNM=JONES
When the preceding GU call is used, IMS gets the COURSE segment with a number 12345. Then IMS gets a secondary index entry, one in which XSTUNM is equal to JONES. IMS checks to see if the pointer in the secondary index points to the COURSE segment with course number 12345. If it does, IMS returns the COURSE segment to the application program's I/O area. If the secondary index pointer does not point to the COURSE segment with course number equal to 12345, IMS checks for other secondary index entries with XSTUNM equal to JONES and repeats the compare.
If all secondary index entries with XSTUNM equal to JONES result in invalid compares, no segment is returned to the application program. By doing this, IMS need not search the STUDENT segments for a student with NAME equal to JONES. This technique involving use of the INDICES= parameter is useful when source and target segments are different.
The following figure shows the databases for the second example of the INDICES parameter.

The following code shows the example PCB.
PCB PROCSEQ=SIDBD2
SENSEG NAME=COURSE, INDICES=SIDBD1
SENSEG NAME=STUDENT
The following code shows the example application programming call.
GU COURSE SCRSNM=MATH&XSTUNM=JONES
Compare process and performance
Excluding COURSENM=12345 in the preceding GU call would impact performance. IMS retrieves the first COURSE segment in the COURSE database, and then a secondary index entry in which XSTUNM is equal to JONES. IMS checks to see if the pointer in the secondary index points to the COURSE segment just retrieved. If it does, IMS returns the COURSE segment to the application program's I/O area. If the secondary index pointer does not point to this COURSE segment, IMS checks for other secondary index entries with XSTUNM equal to JONES and repeats the compare. If all secondary index entries with XSTUNM equal to JONES result in invalid compares, IMS retrieves the next COURSE segment and the secondary index entries as before, then repeats the compare. If all the COURSE segments result in invalid compares, no segment is returned to the application program.
The INDICES= parameter can also be used to reference more than one secondary index in the source call. The GU call shown in Figure 4 shows another example of the INDICES=parameter.
In the figure shown in Figure 6, IMS uses the SIDBD2 secondary index to get the COURSE segment for MATH. IMS then gets a COURSE segment using the SIDBD1. IMS can then compare to see if the two course segments are the same. If they are, IMS returns the COURSE segment to the application program's I/O area. If the compare is not equal, IMS looks for other SIDBD1 pointers to COURSE segments and repeats the compare operations. If there are still no equal compares, IMS checks for other SIDBD2 pointers to COURSE segments and looks for equal compares to SIDBD1 pointers. If all possible compares result in unequal compares, no segment is returned to the application program.