Chris DiBona has a nice idea on SQL result caching: „First thing, before any actual real queries happen, the page construction logic should query the tracking table to get a list of tables that have become dirty since the last time a page was constructed, this can commonly become the only query that a page might see. In the event that a list of „dirtied“ tables has been returned, the routine should remove the cached tables from whatever storage you’re using.“