I have some general questions about caching again. I am writing a portal app. Each portal can customize the look of their portal. Each module for each portal can have it&#039;s own customized header and footer text. So, these are a few options that I thought of for caching the header and footer text. I have a table that looks like the below: <BR><BR>PortalId ModuleId HeaderText FooterText <BR><BR><BR>So, I figured I have three options for caching, one would be to create an item in cache for the entire table, two would be to create an item in cache for each portal, three would be to create an item in cache for each module. What would be my best option? <BR><BR>Also, for a best practice and performance stand point, what would be best. For the cache items mentioned above, I want to have them cached, but I want them to always be up to date. So, here is my question. I have a few options here I guess. One, when there is an update I can use the xp_cmdshell extended procedure in SQL Server to call httpget to execute a web page that will clear the cache item that is passed in the querystring. Two, I can have the cache items dependant on a file, in that file it will contain only a date, then when and update is made I can again use xp_cmdshell to call httpget to call a web page that just updates the time stamp in that file. Three, I can generate XML files for the cache and have the cache dependant on those xml files, then when the DB is updated I can regenerate the XML. For that one, what would be the best practice for generating the XML? Again with an httpget call? Or, should I just regenerate the XML or cache on the same aspx page where the DB update takes place?