4

我有一个应用程序可以使用不同的结果进行不同的查询,因此在我的情况下缓存是有害的。

这意味着没有公共数据可以让 sql 从中受益,直接从内存中获取结果而不是访问硬盘。

4

3 回答 3

2

从您的评论看来,您不希望 SQL 使用太多内存,因为您觉得这毫无意义,因为您运行的任何查询实际上都是随机的。

首先,这个内存可能被用来存储索引和查询计划,而不是你想要返回的实际数据,因此你可能会发现这个缓存比你想象的要有用得多。

其次,使用这种内存量的 sql 不太可能导致真正随机的不可见查询的性能降低。如果 SQL Server 需要去磁盘获取任何信息,那么它使用的内存量几乎没有关系。

但是,可以减少 SQL Server 使用的内存量。(我不知道该选项在 SQL 2008 中的位置,但我认为它非常相似) 在 Management Studio 中,右键单击服务器并执行属性。在那里,您将有一个内存页面。在这里,您可以选择 SQL 将使用的最小值和最大值。这将有效地限制任何基于您的值的缓存 sql,而不是物理服务器的限制。

我真的不认为你会看到任何性能提升。以我的经验,SQL 总是最好的做它自己的事情。

于 2009-05-24T08:55:34.907 回答
1

您的问题是错误的:缓存意味着数据在内存中,并且避免了磁盘访问。

无论如何,SQL Server 缓存是无害的。对于书呆子来说,总是有例外,但你必须在它之前认真搞砸代码和配置。

于 2009-05-24T08:14:13.727 回答
0

关闭(或尝试关闭)SQL Server 缓存是完全错误地考虑问题。如果数据缓存在您的数据层层中,您应该在那里刷新它。SQL Server 永远不会提供过时的数据。

于 2009-05-24T08:20:56.957 回答