我基本上想在这种格式的Web应用程序中编写一堆常用查询:
SELECT *
FROM secure_table
WHERE security_function(value 1, value 2) = true;
值1和值2将具有足够有限的值范围,以便缓存安全性函数的结果,从而在提高应用程序性能方面可能非常有用。我们还需要能够随意触发缓存重置,因为某些条件会使缓存的值过时。
使用SQL Server是否有开箱即用的方式(我相信我们将使用2012版本)?我有一个谷歌周围没有看到任何具体的,一些引用ASP.NET状态,但没有具体的实际涉及的内容,以及一些对memcached的引用,但这似乎没有下降到功能级别,所以没有'似乎也适合。
编辑:
所以我希望这个函数可以像这样工作:
function security_function(val1, val2) {
result = getFromCache(val1, val2)
if result is empty then
result = //do big complicated query
addToCache(val1, val2, result)
end
return result
}
答案 0 :(得分:0)
如果您使用的是ASP.Net,则可以使用缓存对象来存储查询结果:
在c#中:
Results GetResults(string value1, string value2)
{
string cacheItemName = "cacheItem-" + value1 + "-" + value2;
if (Cache[cacheItemName] != null)
{
return Cache[cacheItemName];
}
else
{
var result = // do big complicated query;
Cache.Insert(cacheItemName, result,
null, DateTime.Now.AddMinutes(15d), // Expire after 15 minutes
System.Web.Caching.Cache.NoSlidingExpiration);
return result;
}
}