我有一个包含1000万行的表,我需要与另一个表连接并更新所有数据.这花费的时间超过1小时,并且我的事务日志增加了10多GB.还有另一种方法可以提高这种性能吗?
我相信每次更新后,都会检查索引和约束,并记录所有信息.有没有办法告诉SQL Server仅在更新完成后检查约束并最小化更新操作?
我的查询如下.我修改了一些名字,因此更容易阅读.
UPDATE o
SET o.Info1 = u.Info1, o.Info2 = u.Info2, o.Info3 = u.Info3
FROM Orders o
INNER JOIN Users u
ON u.ID = o.User_ID
Run Code Online (Sandbox Code Playgroud)
编辑:如评论中所述,表定义类似于以下内容(再次简化以创建一般问题).
ID int PK
OrderNumber nvarchar(20)
User_ID int FK to table Users
Info1 int FK to table T1
Info2 int FK to table T2
Info2 int FK to table T3
Run Code Online (Sandbox Code Playgroud)
ID int PK
UserName nvarchar(20)
Info1 int FK to table T1
Info2 int FK to table T2
Info2 int FK …Run Code Online (Sandbox Code Playgroud)