告诉SQL Server仅缓存特定类型的临时查询的方法
有没有办法告诉SQL Server不要缓存某些类型的计划?例如,如果有大量来自SQL Server Management Studio的用户查询,是否有方法告诉这些查询不要缓存在计划缓存中,从而占用内存和其他资源?有没有其他行为调整可以防止临时查询占用生产服务器上的资源?我不知道有什么。。。但是,总的来说,我认为在大多数高性能的情况下,您可能会担心这种详细程度,您可能首先需要一个不受用户提交的查询影响的生产数据库。在生产环境中,对这些查询计划造成伤害的不是一点点内存,而是用户提交的查询会发出大量锁,并使您的性能停滞不前。作为一个基本的建筑问题,你可以考虑:告诉SQL Server仅缓存特定类型的临时查询的方法,sql,sql-server,Sql,Sql Server,有没有办法告诉SQL Server不要缓存某些类型的计划?例如,如果有大量来自SQL Server Management Studio的用户查询,是否有方法告诉这些查询不要缓存在计划缓存中,从而占用内存和其他资源?有没有其他行为调整可以防止临时查询占用生产服务器上的资源?我不知道有什么。。。但是,总的来说,我认为在大多数高性能的情况下,您可能会担心这种详细程度,您可能首先需要一个不受用户提交的查询影响的生产数据库。在生产环境中,对这些查询计划造成伤害的不是一点点内存,而是用户提交的查询会发出大量
(很抱歉,我没有回答您实际提出的问题;希望有比我更有知识的人会回答。)我认为可能没有必要担心限制这个问题,但是在讨论中您可以通过根据设置“优化临时工作负载”设置来影响SQL server处理临时查询和计划缓存的方式 本质上,这意味着‘第一次调用临时查询时,不要缓存计划,而是存储已调用的查询。第二次调用同一个临时查询时,计划将被缓存 我们在一台生产服务器上设置了这一点,并立即释放了2GB的RAM,这比任何东西都更能说明该服务器当前的工作负载(这不是什么好事)