我目前正在更新一个包含数百万条记录的表,已经 4 天了,查询仍在执行。
我检查了活动监视器,它显示查询正在运行。
在事件日志中根本没有错误。
性能明智:
请建议我该怎么办?
查询
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) 过去,我有一个运行了 7 天的更新查询。我找不到解决方案,所以我创建了一个带有索引的新数据库。更新查询现已运行 26 小时。
我看到如下消息:
数据库 'database1' 中文件 database1_log 文件的自动增长用了 1010871 毫秒。考虑使用 ALTER DATABASE 为该文件设置较小的 FILEGROWTH。
数据库 'database1' 中文件 'database1.log' 的自动增长耗时 79342 毫秒。考虑使用 ALTER DATABASE 为该文件设置较小的 FILEGROWTH。
我真的不明白该怎么办。