Class TransformDistinctToReduced
- All Implemented Interfaces:
Transform
Transforms generic DISTINCT plus ORDER BY combinations to
REDUCED plus ORDER BY which typically gives better
performance and memory consumption because engines have to keep less data
in-memory to evaluate it.
As with most optimizations this is only applied when it is safe to do so. The criteria for being safe to do so are as follows:
- Uses both
ORDER BYandDISTINCTon the same level of the query - There is a fixed list of variables to project i.e. not
SELECT * ORDER BYconditions cover all the projected variables prior to the use of any other variables
Related Optimizations
See also TransformOrderByDistinctApplication which is a better
optimization for these kinds of queries but only applies to a more limited range
of queries. Where possible that optimization is applied in preference to this
one.
TransformTopN covers the case of DISTINCT plus
ORDER BY where there is also a LIMIT. Where possible that
optimization is applied in preference to either this or
TransformOrderByDistinctApplication.
-
Field Summary
Fields inherited from class org.apache.jena.sparql.algebra.TransformCopy
COPY_ALWAYS, COPY_ONLY_ON_CHANGE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiontransform(OpDistinct opDistinct, Op subOp) transform1(OpDistinct opDistinct, Op subOp) Methods inherited from class org.apache.jena.sparql.algebra.TransformCopy
transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform
-
Constructor Details
-
TransformDistinctToReduced
public TransformDistinctToReduced()
-
-
Method Details
-
transform1
-
transform
- Specified by:
transformin interfaceTransform- Overrides:
transformin classTransformCopy
-