diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/where.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/where.c b/src/where.c index b7e51f3d9..722a0062a 100644 --- a/src/where.c +++ b/src/where.c @@ -4056,7 +4056,11 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ pWInfo, nRowEst, nOrderBy, isOrdered ); } - rCost = sqlite3LogEstAdd(rUnsorted, aSortCost[isOrdered]); + /* TUNING: Add a small extra penalty (5) to sorting as an + ** extra encouragment to the query planner to select a plan + ** where the rows emerge in the correct order without any sorting + ** required. */ + rCost = sqlite3LogEstAdd(rUnsorted, aSortCost[isOrdered]) + 5; WHERETRACE(0x002, ("---- sort cost=%-3d (%d/%d) increases cost %3d to %-3d\n", |