通过存储到变量来减少SQL查询?

时间:2011-04-08 02:33:49

标签: c# asp.net sql-server sql-server-2005 sql-server-2008

这可能是一个愚蠢的问题?但是你能够对数据库执行SQL查询以获取X的所有记录项,将其存储到本地变量“myRecords”中,然后过滤“myRecords”变量中包含的结果吗? (保存您对数据库进行多轮/查询)。

这是一个好主意吗?还是个坏主意?

3 个答案:

答案 0 :(得分:3)

我相信你指的是经典的缓存案例,有很多资源可以指导你实施这种方法。要获得更具体的答案,您需要提供有关您要解决的问题的更多详细信息。主题很大,可能非常复杂,具体取决于您的环境参数。

答案 1 :(得分:2)

绝对!!它叫做缓存..但有很多不同的方法可以做到这一点..查看这篇精彩的文章http://wiki.asp.net/page.aspx/655/caching-in-aspnet/

答案 2 :(得分:0)

我同意K Ivanov。只想添加一些东西。

这可能是巨大的性能提升或完全灾难。很少在两者的中间。

我认为在讨论这个话题之前你可能想做一些事情。首先,配置数据库和查询。查找任何区域,例如新的或更改的索引,甚至是稍微不同的表格设计,可能会首先提高性能。

有几个问题。第一个处理将缓存此内容的计算机上的内存要求。如果您的数据库服务器已经受内存限制,那么建议不要添加一些中间缓存。

如果您将数据缓存在Web服务器中,那么您可能会从根本上增加应用程序的内存占用量。此外,根据缓存策略和数据的性质,它可能很快变得陈旧,导致不良结果。

重点是,在你尝试走另一条路之前,请确保你完全理解你所遇到的问题。它可能就像调整索引和/或向数据库服务器添加RAM一样简单。这些相对容易实现,而坚实的缓存机制可能是一个福音或导致更大的问题。