我们正在使用 SQL Server 2016 标准版 (SP2-CU2)。我们有几台服务器,每台服务器托管几十到数百个数据库。我们从未在我们的数据库上启用查询存储。
我知道打开查询存储进行调优有很多好处。我想知道,是否存在不应该打开查询存储的情况?或者我应该在所有数据库上打开它吗?
已编辑
以防万一它可以帮助其他人。我最终所做的是启用查询存储一些数据库的时间,每天,并进行监控。到目前为止,我已经在我的几乎所有数据库上启用了查询存储,而没有任何性能影响。事实证明,它在调查问题时很有用。
我们正在使用 SQL Server 2016 标准版 (SP2-CU2)。我们有几台服务器,每台服务器托管几十到数百个数据库。我们从未在我们的数据库上启用查询存储。
我知道打开查询存储进行调优有很多好处。我想知道,是否存在不应该打开查询存储的情况?或者我应该在所有数据库上打开它吗?
已编辑
以防万一它可以帮助其他人。我最终所做的是启用查询存储一些数据库的时间,每天,并进行监控。到目前为止,我已经在我的几乎所有数据库上启用了查询存储,而没有任何性能影响。事实证明,它在调查问题时很有用。
所以你真的有两个问题:
根据一些关于启用查询存储时现场出现重大性能问题的报告(尽管这种情况很少见),人们可能会推断您不应在会导致重大性能问题的数据库上启用查询存储。
当然,您确定它是否会导致性能问题的唯一方法是研究所有已知问题,确保它们都不会影响您的系统,然后启用它——但您仍然不知道是否在您启用它之前,它会导致性能问题。例如,请参阅FIX:启用查询存储时 SQL Server 2016 性能降低。请注意,启用或更改查询存储中的设置也可以刷新计划缓存。
其次,如果您不打算使用它提供的信息和功能来提高在您的服务器上运行的查询的性能,那么您不应该启用它。某些环境,特别是受严格监管的大型组织,可能具有如此严格的更改控制,以至于您实际上无法使用查询存储做任何事情。
我当然不会同时在数百个数据库上启用它,因为可能会导致很多问题并且有太多数据需要分析。如果您的环境能够使用查询存储来提高性能,那么我建议一次启用几个数据库。
如果您有数百个数据库,您可能没有人员来分析所有信息,因此定期在几台服务器上启用它可能是有意义的,看看是否有任何改进,然后禁用它和在其他一些服务器上使用它一段时间。或者,当发生应用程序升级时,启用它一段时间以查看新代码是否触发了查询存储可以提供帮助的任何内容。