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 BY
andDISTINCT
on the same level of the query - There is a fixed list of variables to project i.e. not
SELECT *
ORDER BY
conditions 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
-
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
-
Constructor Details
-
TransformDistinctToReduced
public TransformDistinctToReduced()
-
-
Method Details
-
transform1
-
transform
- Specified by:
transform
in interfaceTransform
- Overrides:
transform
in classTransformCopy
-