小编Luc*_*cky的帖子

更新一个包含数百万条记录的表,已经 4 天了

我目前正在更新一个包含数百万条记录的表,已经 4 天了,查询仍在执行。

我检查了活动监视器,它显示查询正在运行。

在事件日志中根本没有错误。

性能明智:

  • 磁盘 A 中的 Tempdb(850 GB 可用空间)
  • 磁盘 B 中的数据库文件(750 GB 可用空间)
  • 16 GB 内存

请建议我该怎么办?

查询

UPDATE
    dbo.table1
SET 
    costPercentage = ISNULL(t2.PaymentIndex, 1.0),
    t2.TopUp_Amt = (ISNULL(t2.PaymentIndex, 1.0) - 1.0)
    * ISNULL(dbo.table1.Initial_Tariff_Amt, 0.00),
    Total_Tariff_Inc_t2 = ISNULL(t2.PaymentIndex, 1.0)
    * ISNULL(dbo.table1.Initial_Tariff_Amt, 0.00)
FROM
    dbo.table2 t2
WHERE
    LEFT(dbo.test1.procodet, 3) = LEFT(t2.ProviderCode, 3) COLLATE database_default 
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

12
推荐指数
2
解决办法
2846
查看次数

消息 5145:数据库日志文件的自动增长用了 1010871 毫秒

过去,我有一个运行了 7 天的更新查询。我找不到解决方案,所以我创建了一个带有索引的新数据库。更新查询现已运行 26 小时。

我看到如下消息:

数据库 'database1' 中文件 database1_log 文件的自动增长用了 1010871 毫秒。考虑使用 ALTER DATABASE 为该文件设置较小的 FILEGROWTH。

数据库 'database1' 中文件 'database1.log' 的自动增长耗时 79342 毫秒。考虑使用 ALTER DATABASE 为该文件设置较小的 FILEGROWTH。

  • 数据文件为40GB
  • 日志文件为 50 GB,自动增长设置为 10%

我真的不明白该怎么办。

performance sql-server transaction-log update auto-growth

2
推荐指数
1
解决办法
2306
查看次数