Luc*_*cky 2 performance sql-server transaction-log update auto-growth
过去,我有一个运行了 7 天的更新查询。我找不到解决方案,所以我创建了一个带有索引的新数据库。更新查询现已运行 26 小时。
我看到如下消息:
数据库 'database1' 中文件 database1_log 文件的自动增长用了 1010871 毫秒。考虑使用 ALTER DATABASE 为该文件设置较小的 FILEGROWTH。
数据库 'database1' 中文件 'database1.log' 的自动增长耗时 79342 毫秒。考虑使用 ALTER DATABASE 为该文件设置较小的 FILEGROWTH。
我真的不明白该怎么办。
该错误是由 SQL Server 花费多长时间来增加事务日志引起的。
假设您引用的错误消息是针对最后一次增长的,SQL Server 声称 SQL Server 需要大约 17 分钟才能将不到 5GB 的数据添加到您的事务日志文件中。
这可能是由许多问题引起的:
慢盘:如果您的磁盘特别旧且速度慢,则 SQL Server 将需要更长的时间来扩展文件
磁盘争用:如果 SQL Server 不得不竞争对磁盘的访问,那么扩展它们会很慢。造成这种情况的常见原因可能是只有 1 个磁盘用于操作系统、数据和日志,或者计算机上的另一个应用程序访问与 SQL Server 相同的磁盘
您可以尝试多种方法来缓解此问题:
如果可能,将您的文件移动到单独的物理磁盘上。通常,您希望有 3 个磁盘用于操作系统、数据和日志。
使用更快的存储。如果您可以升级磁盘,那么这将减少等待自动增长完成的时间
将自动增长设置修改为固定大小。这样,您将获得持续增长,而不是像当前百分比设置那样呈指数增长。在大量文件增长事件和等待增长发生之间选择一个可接受的折衷值。
重新创建您的数据库,并预先分配容纳您计划运行的查询所需的日志文件。这将删除自动增长事件(除非您超过该大小)。
希望有帮助。
归档时间: |
|
查看次数: |
2306 次 |
最近记录: |