are we guaranteed that the return value of scan_time will not cause
the optimizer to use a full table scan over a covering index over a
portion of the table?
On Wed, Oct 7, 2009 at 4:34 PM, Zardosht Kasheff <zardosht@stripped> wrote:
> I realize this may be difficult to answer, but any examples on when
> absolute values matter?
> On Wed, Oct 7, 2009 at 4:27 PM, Sergei Golubchik <serg@stripped> wrote:
>> Hi, Zardosht!
>> On Oct 07, Zardosht Kasheff wrote:
>>> I would like to make sure that I understand the meaning of the
>>> functions handler::scan_time and handler::read_time. Both are to be
>>> estimates of the cost of doing some operations on a table.
>>> handler::scan_time estimates the cost of doing a full table scan.
>>> handler::read_time estimates the cost of reading some number of rows
>>> from some number of ranges in an index (assumed to be a non-covering
>>> The estimates requested are meant to be disk seeks.
>>> I have gathered this from reading comments in different handler
>>> The questions that I need help on are the following:
>>> 1) Is my understanding above accurate?
>> Yes. At least it matches mine :)
>>> 2) Does the absolute value returned affect the query plan, or is it
>>> the relative value between these two functions?
>> I'm afraid that absolute values matter. And the the units of
>> scan_time/read_time are quite arbitrary and there's no normalization
>> procedure that would help to select them correctly :(
>> I suppose that other engines simply tweak these numbers until they get
>> satisfactory query plans.
>> Regards / Mit vielen Grüßen,
>> __ ___ ___ ____ __
>> / |/ /_ __/ __/ __ \/ / Sergei Golubchik
>> / /|_/ / // /\ \/ /_/ / /__ Principal Software Engineer/Server
>> /_/ /_/\_, /___/\___\_\___/ Sun Microsystems GmbH, HRB München
> Sonnenallee 1, 85551 Kirchheim-Heimstetten
>> Geschäftsführer: Thomas Schroeder, Wolfgang Engels, Wolf Frenkel
>> Vorsitzender des Aufsichtsrates: Martin Häring