So I've been looking into effective ways to take the load off of my database in my ASP.NET application, and I've run into the \[code\]System.Web.Mvc.OutputcCacheAttribute\[/code\]. I've used caching based on \[code\]System.Web.HttpRuntime.Cache\[/code\] before, it seems to be pretty much functionally equivalent.I've done a lot of research on it, and everything I've seen portrays it as some sort of silver bullet for caching requests as long as you configure it effectively. I find this hard to believe. I understand that all it really takes (to a degree) for some effective caching is storing the output data based on certain conditions, but it still just seems too easy to just tack on an attribute and have your application magically perform better.Has anyone had any experience with the benefits/drawbacks of using Output Caching in ASP.NET? If so, what are the pain points of using this approach to caching?