whinit: WHERE ((I=1) and (J>5) and (MOD(K, 3)=2))
whinit: wh-tree presented
/-NAME = [I]
/-CEQ----|
|
\-LITN = [1]
--LAND---|
|
/-NAME = [J]
|--CGT----|
|
\-LITN = [5]
|
/-FUNC = [MOD()]
|
/-FLST---|
|
| |--NAME = [K]
|
| \-LITN = [3]
\-CEQ----|
\-LITN = [2]
whinit: wh-tree after split
/-FUNC = [MOD()]
/-FLST---|
|
|--NAME = [K]
|
\-LITN = [3]
--CEQ----|
\-LITN = [2]
whinit: SBM-INDEX IJK uses 1% of sges(WITHIN maxsegratio 75%)
whinit: SBM-INDEX J uses at least 76% of segs(EXCEEDS maxsegratio 75%)
whinit: INDEX tree after split
/-NAME = [I] <1>SBM-INDEX IJK (I)
/-CEQ----|
|
\-LITN = [1]
--LAND---|
|
/-NAME = [J] <2>SBM-INDEX J (J)
\-CGT----|
\-LITN = [5]
whinit returns: ALL EVAL1(w/SEGLIST) EVAL2
Here the indexes on
column
i, a composite index on the columns
(
i j k), and the column
j are combined. In this example WHINIT uses both EVAL1 and EVAL2.
The
j predicate involves an inequality operator
(greater than). Therefore, WHINIT cannot combine the predicate with
i and the composite index involving
i and
j (and
k).
Using the composite
index
ijk in this plan might be inefficient.
If a smaller composite index (that is, one on
i j or a simple index on
i) were available,
WHINIT would select it. In lieu of this, try benchmarking the plan.
Suppress the composite index and compare the results to the existing
plan to see which is more efficient (faster) on your machine.
The example that follows
shows what WHINIT's plan would look like with the composite index
suppressed.