Siebel Order Management Infrastructure Guide > Product Selection and Pricing Engine > About Tuning Performance of PSP >

Optimizing PSP Cache


To maximize the cache hit rate (and hence, performance and scalability), you should partition the transform search specification into a high selectivity clause that is executed by the database and used as part of the PSP cache key (the Search Specification input argument) and a low selectivity clause that is executed by the PSP transform itself to further filter the query results (the In Memory Search Specification input argument). When you use the In Memory Search Specification input argument in combination with a Search Specification input argument, your search specification is: [Search Specification] AND [In Memory Search Specification].

The two search specification input arguments are divided by purpose as follows:

  • Search Specification. Use this input argument to define selective search criteria executed by the database.
  • In Memory Search Specification. Use this input argument to define low selectivity search criteria executed by the Siebel Server.

    NOTE:  The Dynamic Look-Up transform does not support the In Memory Search Specification input argument. This transform dynamically generates its own search specification.

The order of search implementation is as follows: first the Search Specification input argument is applied to the database query. Next, the returned result set is further filtered in memory by applying the In Memory Search Specification input argument.

Example values for Search Specification and In Memory Search Specification are shown in Table 33 for the Pricer Simple Volume Discount step.

Table 33. Example Values for Search Specification Input Arguments
Input Argument
Value

Search Specification

[Volume Discount Id] = {Row.Volume Discount Id} AND [Volume Discount Method] = LookupValue('VOL_DISCNT_METHOD', 'SIMPLE')

In Memory Search Specification

[Minimum Quantity] <= {Row.Extended Quantity Requested} AND ([Maximum Quantity] >= {Row.Extended Quantity Requested} OR [Maximum Quantity] IS NULL) AND [Volume Discount Start Date] <= Timestamp() AND ([Volume Discount End Date] >= Timestamp() OR [Volume Discount End Date] IS NULL)

The example shown in Table 33 results in one query for each volume discount that retrieves all result rows. All subsequent queries against that volume discount are served from the cache regardless of the values for [Extend Quantity Requested] or Timestamp().

NOTE:  In Memory Search Specification execution does not use database features such as indexes. Make sure the result set searched in memory is not too large. For example, loading an entire price list in one query is not likely to improve performance; search a subset of the price list.

For information on PSP Cache performance, see About PSP Cache Performance Statistics.

Siebel Order Management Infrastructure Guide Copyright © 2008, Oracle and/or its affiliates. All rights reserved. Legal Notices.