【发布时间】:2011-04-08 02:33:49
【问题描述】:
这可能是一个愚蠢的问题?但是您是否能够对数据库执行 SQL 查询以获取 X 的所有记录项,将其存储到局部变量“myRecords”中,然后过滤“myRecords”变量中包含的结果? (节省您对数据库进行多次循环/查询)。
这是个好主意吗?还是个坏主意?
【问题讨论】:
标签: c# asp.net sql-server sql-server-2005 sql-server-2008
这可能是一个愚蠢的问题?但是您是否能够对数据库执行 SQL 查询以获取 X 的所有记录项,将其存储到局部变量“myRecords”中,然后过滤“myRecords”变量中包含的结果? (节省您对数据库进行多次循环/查询)。
这是个好主意吗?还是个坏主意?
【问题讨论】:
标签: c# asp.net sql-server sql-server-2005 sql-server-2008
我相信您指的是经典的缓存案例,有很多资源可以指导您实施这种方法。要获得更具体的答案,您需要提供有关您尝试解决的问题的更多详细信息。该主题非常庞大,并且可能非常复杂,具体取决于您的环境参数。
【讨论】:
绝对!!它被称为缓存.. 但是有很多不同的方法来做到这一点.. 看看这篇很棒的文章http://wiki.asp.net/page.aspx/655/caching-in-aspnet/
【讨论】:
我同意 K Ivanov 的观点。只是想添加一些东西。
这可能是巨大的性能提升,也可能是一场彻底的灾难。很少在两者中间。
我认为您可能想在继续这个主题之前做一些事情。首先,分析您的数据库和查询。首先寻找可能导致性能改进的任何区域,例如新的或更改的索引,甚至是稍微不同的表设计。
有几个问题。第一个处理将缓存它的机器上的内存要求。如果您的数据库服务器已经受到内存限制,则不建议在其上添加一些中间缓存。
如果您将数据缓存在 Web 服务器中,那么您可能会从根本上增加应用程序的内存占用。此外,根据缓存策略和数据的性质,它可能会很快变得陈旧,从而导致不良结果。
重点是,在您尝试另辟蹊径之前,请确保您完全了解您遇到的问题。它可能就像调整索引和/或向数据库服务器添加 RAM 一样简单。这些实现起来相对容易,而可靠的缓存机制可能会带来好处,也可能会导致更大的问题。
【讨论】: