更高效的SQL查询来更新列

时间:2018-01-22 08:07:05

标签: sql sql-server

我还是SQL的新手,我的下面的查询完美无缺。但是,随着表格的增长,我担心这是完成此任务的最有效方式。

UPDATE tblPNPStoreStock
SET [Date] = CAST('2009-05-25' AS DATETIME)
FROM tblPNPStoreStock 
WHERE [Last sold] IS NULL;

有人说我应该研究一种嵌套的方法 - 我不知道从哪里开始。

1 个答案:

答案 0 :(得分:2)

在SQL Server 2008+中,您可以create a filtered index,它可以索引[Last sold]为NULL的行:

CREATE NONCLUSTERED INDEX 
    fix_tblPNPStoreStock_last_sold
ON
    tblPNPStoreStock(
        [Last sold] 
    )
WHERE
    [Last sold] IS NULL;

这将优化您的更新语句。请注意,如果基于该列的条件不同,则常规索引可能会更好。