• This could also be something as simple as a cold cache vs. warm cache in the database the report queries. The first time the user runs a report and SSRS sends the query to the DB, the data pages the DB needs to execute the query are not in the buffer pool, so it reads them from disk (a comparatively slow process). Since pages aren't flushed from the buffer pool until SQL Server needs the space, the next time the user runs the report, at least some of the data pages may still be in the buffer pool. If the DB server is well-provisioned with RAM and/or there's not much activity in the SQL Server instance, all of the data may still be in the buffer pool the next time the report runs. Data retrieval from memory is much faster than data retrieval from disk.

    Jason Wolfkill