1. A method for optimizing processing of a request, the request having one or more predicates, the method including: creating a list of the one or more predicates in the request; pruning from the list the predicates for which an actual cost has not been stored or for which a cost cannot be estimated; selecting an access path for the each of the predicates; processing the request using the selected access paths, producing one or more actual predicate costs; and storing the one or more actual predicate costs.