【发布时间】:2019-02-27 07:25:53
【问题描述】:
我需要通过一个存储过程做如下更新查询:
UPDATE table1
SET name = @name (this is the stored procedure inputparameter)
WHERE name IS NULL
Table1 没有索引或键,5 列是 4 个整数和 1 个 varchar(可更新列 'name' 是 varchar 列)
NULL 记录大约有 15.000.000 行需要更新。这需要大约 50 分钟,我认为这太长了。
我正在运行 Azure SQL DB Standard S6(400DTU)。
谁能给我一个提高性能的建议?
【问题讨论】:
-
您是否希望将所有空名称值更新为特定值或更新任何特定 ID?
-
所有NULL值都必须更新为@name,大约1500万条记录,没有特定ID
-
您没有提到您是否真的可以选择创建索引或扩展 SQL Server(即到 P 级别)。这是提高性能的两个步骤
-
如果我做对了,你每秒更新 5000 行。是什么让这太慢了?
标签: sql sql-server stored-procedures azure-sql-database