gpt4 book ai didi

sql-server - SQL Server 长时间运行的查询需要数小时但使用低 CPU

转载 作者:行者123 更新时间:2023-12-03 23:57:53 26 4
gpt4 key购买 nike

我在具有 32 GB RAM 和 8 个 CPU 内核的专用服务器中的 Windows Server 2012 下的 SQL Server 2012 中运行一些存储过程。 CPU 使用率始终低于 10%,RAM 使用率为 80%,因为 SQL Server 分配了 20 GB(共 32 GB)。

有一些存储过程有时需要 4 个小时,而其他几天,几乎相同的数据需要 7 或 8 个小时。

我使用的是限制最少的隔离级别,所以我认为这不应该是一个锁定问题。数据库大小约为 100 GB,最大的表有大约 500 万条记录。

进程有批量插入、更新和删除(在某些情况下我可以使用 truncate 来避免生成日志并节省一些时间)。我正在一张表中进行一些全文搜索查询。

我可以完全控制服务器,因此我可以更改任何配置参数。

我有几个问题:

  1. 是否可以使用以下方法提高查询性能并行性?
  2. 为什么 CPU 使用率这么低?
  3. 配置 SQL Server 的最佳做法是什么?
  4. 最好的免费服务器审计工具是什么?我试过一个来自 Microsoft 的名为 SQL Server 2012 BPA 但报告始终是空的,没有警告。

编辑:我检查了日志,发现了这个:

03/18/2015 11:09:25,spid26s,未知,SQL Server 在文件 [C:\Program Files\Microsoft SQL Server\MSSQL11.HLSQLSERVER\MSSQL\DATA\templog.ldf] 在数据库 [tempdb] (2) 中。操作系统文件句柄是 0x0000000000000BF8。最新的long I/O偏移量为:0x00000001fe4000

最佳答案

  1. 将最大内存增加到 24 GB。
  2. 将 tempdb 移出 c 驱动器并考虑多个 tempdb 文件,自动增长至少 128 Mbps 或 256 Mbps。
  3. 安装性能仪表板并运行性能仪表板报告以查看正在运行的查询并检查等待情况。
  4. 如果您对 10% 的用户数据日志和日志文件使用自动增长,请将其更改为类似于上述 tempdb 增长的内容。
  5. 使用性能仪表板检查明显缺失的指标,预测 95% 或更高的改进影响。
  6. 不要理会所有说不要按照我的建议去做的反对者。如果你做了这 5 件事,但仍然无法发布性能仪表板的一些结果,顺便说一句,这是免费的。
  7. 还有一件可能有用的事情,下载并安装 sp_whoisactive 存储过程,运行它并查看正在运行的进程。研究运行 sp_whoisactive 后发现的查询。

关于sql-server - SQL Server 长时间运行的查询需要数小时但使用低 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29122369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com