缓存和共享类是应用程序范围的。我知道有一些细节但是这里的情景:
我将参数保存在数据库中。 我将它们读取到datatable并将它们存储在缓存中。 每当我需要我直接将缓存变量转换为datatble,查询它并获得结果。 所以我每次都不使用sql server。
替代方案是: 读取数据库并将其存储在类共享变量中 只要需要,我就使用这个共享变量(datatable)并查询它。 如果此变量为空,则从db填充ilt。 因为变量是数据表,我需要直接播放它。
哪一个更受欢迎?或者我可以使用它们中的任何一个,因为没有区别。
这门课程不是特别的。只包含从数据库中读取参数的函数。为了加快速度,我开始使用aspnet缓存,但我注意到我不需要,因为类变量可以处理它。
有什么建议吗?您是否认为此方案的任何可能结果仅适用于不会发生变化的参数?
class Class1
private shared localVar as datatable
public shared function readParam1 as string -- this is my old method
... SELECT from params table
return value
end function
public shared function readParam2 as string -- then I implemented this
if httpcontext.cache variable is empty then
... SELECT from params table
... set cache variable
end if
value = directcast(cachevalue, string)
return value
end function
public shared function readParam3 as string -- now I'm planing to use this
if localVar is empty then
... SELECT from params table
... slocalVar = sql table
end if
value = select value with localVar.Select function
return value
end function
end class
答案 0 :(得分:2)
共享变量是赢家: 1.它们会比缓存快一点,因为缓存需要查找字典。 2.它们更易读,更易于使用
实际上我记不起用于缓存了。因为你在缓存中存储的是共享数据,所以呢?事实上,我对这个问题非常好奇,我将打开新的stackoverflow问题:asp.net shared variables vs cache