J. Mini Asked: 2024-01-14 03:06:42 +0800 CST2024-01-14 03:06:42 +0800 CST 2024-01-14 03:06:42 +0800 CST 如何衡量启用查询存储的成本? 772 启用查询存储可以带来性能优势,特别是从 SQL Server 2022 开始,但成本如何呢?文档坚称成本很小,但我想在我自己的系统上提供证据。我可以查询 DMV 以查找每个数据库使用了多少磁盘空间,但这还不够。如何衡量启用(和使用)查询存储的性能成本?此外,我还应该注意哪些其他费用? 这篇文章是一个很好的尝试,但它是在 Query Store 仍处于开发阶段时发表的。因此,它可能已经过时了。事实上, Erin Stellato 的这 两篇文章表明,随着时间的推移,性能已经有了显着的提升。然而,他们仍然很少透露实际成本是多少。 sql-server 2 个回答 Voted J.D. 2024-01-14T05:18:53+08:002024-01-14T05:18:53+08:00 查询存储 如何衡量启用(和使用)查询存储的性能成本? 文档坚称成本很小,但我想在我自己的系统上提供证据。 然后在您自己的系统上启用它。这确实是判断它将如何影响它的唯一方法。如果这不能直接在实时系统中进行,那么在同等配置和配置的服务器上应用类似测试工作负载的复制副本将是下一个最佳测试方法。 如果它太密集,那么您可以轻松禁用它。尽管自最初发布以来它已经有了显着的改进。一般建议也在新数据库上启用它。 监控SQL服务器 一般来说,您应该熟悉一系列免费工具来监视 SQL Server 实例。使用这些工具,您应该能够密切关注服务器在启用查询存储之前和之后的性能: sp_WhoIsActive- 一个标准工具,用于查看服务器上当前正在运行的内容、运行了多长时间、是否有任何阻塞、正在等待什么、以及它的执行计划以及一堆其他有用的信息。 急救人员工具包- 这是一系列工具,可帮助揭示您最大的问题。通过其中的一些,您可以查看服务器上当前正在运行的内容、运行了多长时间、阻碍其运行的因素,并获取它们的实时执行计划。 sp_PressureDetector - 这是一个很棒的工具,可以从 CPU 和内存的角度全面了解服务器的运行情况。它将为您提供有关内存和 CPU 压力方面最大瓶颈的深入信息。 您可以根据需要运行这些临时进程,或者设置一个例行进程,例如运行它们并将结果存储到某些监控表的 SQL 作业。否则,可能值得考虑购买一个完整的监控工具,它将为您连续收集类似的数据。 Best Answer J. Mini 2024-03-27T20:02:32+08:002024-03-27T20:02:32+08:00 该sys.dm_os_memory_clerks视图包含types 表示查询存储。 SELECT * FROM sys.dm_os_memory_clerks WHERE [type] LIKE 'MEMORYCLERK_QUERYDISK%' ORDER BY pages_kb 这些显示了查询存储占用了多少 RAM(在pages_kb列中以 KB 为单位显示)。如果这些是您最大的内存消耗者,那么您就有麻烦了。
查询存储
然后在您自己的系统上启用它。这确实是判断它将如何影响它的唯一方法。如果这不能直接在实时系统中进行,那么在同等配置和配置的服务器上应用类似测试工作负载的复制副本将是下一个最佳测试方法。
如果它太密集,那么您可以轻松禁用它。尽管自最初发布以来它已经有了显着的改进。一般建议也在新数据库上启用它。
监控SQL服务器
一般来说,您应该熟悉一系列免费工具来监视 SQL Server 实例。使用这些工具,您应该能够密切关注服务器在启用查询存储之前和之后的性能:
sp_WhoIsActive
- 一个标准工具,用于查看服务器上当前正在运行的内容、运行了多长时间、是否有任何阻塞、正在等待什么、以及它的执行计划以及一堆其他有用的信息。急救人员工具包- 这是一系列工具,可帮助揭示您最大的问题。通过其中的一些,您可以查看服务器上当前正在运行的内容、运行了多长时间、阻碍其运行的因素,并获取它们的实时执行计划。
sp_PressureDetector - 这是一个很棒的工具,可以从 CPU 和内存的角度全面了解服务器的运行情况。它将为您提供有关内存和 CPU 压力方面最大瓶颈的深入信息。
您可以根据需要运行这些临时进程,或者设置一个例行进程,例如运行它们并将结果存储到某些监控表的 SQL 作业。否则,可能值得考虑购买一个完整的监控工具,它将为您连续收集类似的数据。
该
sys.dm_os_memory_clerks
视图包含type
s 表示查询存储。这些显示了查询存储占用了多少 RAM(在
pages_kb
列中以 KB 为单位显示)。如果这些是您最大的内存消耗者,那么您就有麻烦了。