• There are really only a couple general ways to get around it.

    1) Make sure the data is in memory for the runs where duration matters. This can take a couple different forms.

    1A) Allocate enough memory to the instance so that the pages stay in memory.

    1B) Run some SELECTs from the underlying tables to warm the cache before the real runs.

    2) Tune the query so that it does less IO. The less IO it does, the less of a difference (in absolute terms) there will be between cold cache performance and warm cache performance.

    Without knowing any more detail, it's difficult to say which of these would work best for you.

    The fact that the person table is accessed 2156 times suggests that there are probably tuning opportunities, but it's difficult to say with certainty.

    Cheers!