我的一位前同事在UPDATE
数据导入脚本中编写了以下内容,在 92k 行的表上完成需要将近 15 分钟。
UPDATE table
SET name = (
SELECT TOP 1 old_name FROM (
SELECT
SUM(r) rev,
number,
name,
intermediate_number,
intermediate_name,
old_number,
old_name
FROM table
GROUP BY
number,
name,
intermediate_number,
intermediate_name,
old_number,
old_name
) t
WHERE t.name = table.name
ORDER BY rev DESC
);
我确信它可以被重写以提高效率,但我所有的尝试都失败了,或者没有产生相同的结果。
此外,表上没有定义索引。建议表示赞赏。如果这很重要,我在 Sybase iAnywhere 11 上。